Какие утверждения об интерфейсах справедливы?
1) Интерфейсы поддерживают множественное наследование
2) Интерфейсы могут содержать поля
3) Интерфейсы могут содержать конструкторы
4) Интерфейсы унаследованы от System.Object
Какие утверждения об интерфейсах справедливы?
1) Интерфейсы поддерживают множественное наследование
2) Интерфейсы могут содержать поля
3) Интерфейсы могут содержать конструкторы
4) Интерфейсы унаследованы от System.Object
Чем могут быть M1, M2, M3, M4, если дан следующий код?
public class C1 : M1, M2 { }
public struct S1 : M3, M4 { };
Выберите все подходящие варианты:
Чем могут быть M1, M2, M3, M4, если дан следующий код?
public class C1 : M1, M2 { }
public struct S1 : M3, M4 { };
Выберите все подходящие варианты:
Какое ключевое слово используется в производном классе для вызова конструктора класса-предка?
Какое ключевое слово используется в производном классе для вызова конструктора класса-предка?
Какое синтаксическое правило C# позволяет данному фрагменту кода успешно компилироваться и выполниться?
class Program
{
delegate void HandlerToVoid();
static HandlerToVoid mtd_handler;
static void RegHandler(HandlerToVoid dlg_method)
{
mtd_handler = dlg_method;
}
static void MyMethod()
{
Console.WriteLine("MyMethod() is called!");
}
static void Main(string[] args)
{
RegHandler(MyMethod);
mtd_handler();
}
}
Какое синтаксическое правило C# позволяет данному фрагменту кода успешно компилироваться и выполниться?
class Program
{
delegate void HandlerToVoid();
static HandlerToVoid mtd_handler;
static void RegHandler(HandlerToVoid dlg_method)
{
mtd_handler = dlg_method;
}
static void MyMethod()
{
Console.WriteLine("MyMethod() is called!");
}
static void Main(string[] args)
{
RegHandler(MyMethod);
mtd_handler();
}
}
С помощью системного атрибута AttributeUsage при создании пользовательского атрибута можно:
1) Разрешить или запретить множественное применение атрибута
2) Разрешить или запретить наследование атрибута в производных классах
3) Указать к каким членам можно применять пользовательский атрибут
4) Разрешить или запретить отмечать методы, помеченные данным атрибутом как устаревшие
С помощью системного атрибута AttributeUsage при создании пользовательского атрибута можно:
1) Разрешить или запретить множественное применение атрибута
2) Разрешить или запретить наследование атрибута в производных классах
3) Указать к каким членам можно применять пользовательский атрибут
4) Разрешить или запретить отмечать методы, помеченные данным атрибутом как устаревшие
Какие строки вызовут ошибку компиляции?
interface IList
{
int Count { get; set; }
}
interface ICounter
{
void Count(int i);
}
interface IListCounter : IList, ICounter { }
class C
{
void Test(IListCounter x) // 1
{
x.Count(1); // 2
x.Count = 1; // 3
}
}
Какие строки вызовут ошибку компиляции?
interface IList
{
int Count { get; set; }
}
interface ICounter
{
void Count(int i);
}
interface IListCounter : IList, ICounter { }
class C
{
void Test(IListCounter x) // 1
{
x.Count(1); // 2
x.Count = 1; // 3
}
}
Что верно относительно следующего фрагмента кода?
class A
{
public virtual void m1() { }
}
class B : A
{
public override void m1() { }
}
class C : B
{
public override void m1()
{
/* програмный код */
}
}
Выберите все подходящие варианты:
1) Из класса C невозможно обратиться к методу m1() класса A для одного и того же объекта
2) Из класса C можно получить доступ к методу m1() класса B используя вызов base.m1()
3) Из класса C можно получить доступ к методу m1() класса A с помощью вызова ((A) this).m1()
4) Из класса C можно получить доступ к методу m1() класса A с помощью вызова base.base.m1()
5) Ничего из вышеперечисленного
Что верно относительно следующего фрагмента кода?
class A
{
public virtual void m1() { }
}
class B : A
{
public override void m1() { }
}
class C : B
{
public override void m1()
{
/* програмный код */
}
}
Выберите все подходящие варианты:
1) Из класса C невозможно обратиться к методу m1() класса A для одного и того же объекта
2) Из класса C можно получить доступ к методу m1() класса B используя вызов base.m1()
3) Из класса C можно получить доступ к методу m1() класса A с помощью вызова ((A) this).m1()
4) Из класса C можно получить доступ к методу m1() класса A с помощью вызова base.base.m1()
5) Ничего из вышеперечисленного
Скомпилируется ли следующий код?
interface IEvent
{event EventHandler MyEvent;}
class Base : IEvent
{
protected void OnEventChanged(EventArgs args)
{
if(MyEvent !=null)
MyEvent(this,args);
}
}
class Derived : Base, IEvent
{
public Derived()
{
base.OnEventChanged(EventArgs.Empty);
}
}
Скомпилируется ли следующий код?
interface IEvent
{event EventHandler MyEvent;}
class Base : IEvent
{
protected void OnEventChanged(EventArgs args)
{
if(MyEvent !=null)
MyEvent(this,args);
}
}
class Derived : Base, IEvent
{
public Derived()
{
base.OnEventChanged(EventArgs.Empty);
}
}
В ходе выполнения данного кода генерируется исключение при вызове метода Sort(). Выберите одно из решений, реализация которого позволит этому коду отработать корректно.
namespace Program
{
class A
{
public int id{ get; set;}
public A(int newID)
{
id = newID;
}
}
static void Main(string[] args)
{
A[] arrayOfA = new A[4];
arrayOfA[0] = new A(103);
arrayOfA[1] = new A(4);
arrayOfA[2] = new A(58);
arrayOfA[3] = new A(31);
System.Array.Sort(arrayOfA);
}
}
Варианты ответов:
1) Унаследовать класс A от интерфейса IEnumerable и реализовать его метод GetEnumerator()
2) Унаследовать класс A от интерфейса IComparable и реализовать его метод CompareTo()
3) Унаследовать класс A от интерфейса ICloneable и реализовать его метод Clone()
4) Унаследовать класс A от интерфейса IComparer и реализовать его метод Compare()
В ходе выполнения данного кода генерируется исключение при вызове метода Sort(). Выберите одно из решений, реализация которого позволит этому коду отработать корректно.
namespace Program
{
class A
{
public int id{ get; set;}
public A(int newID)
{
id = newID;
}
}
static void Main(string[] args)
{
A[] arrayOfA = new A[4];
arrayOfA[0] = new A(103);
arrayOfA[1] = new A(4);
arrayOfA[2] = new A(58);
arrayOfA[3] = new A(31);
System.Array.Sort(arrayOfA);
}
}
Варианты ответов:
1) Унаследовать класс A от интерфейса IEnumerable и реализовать его метод GetEnumerator()
2) Унаследовать класс A от интерфейса IComparable и реализовать его метод CompareTo()
3) Унаследовать класс A от интерфейса ICloneable и реализовать его метод Clone()
4) Унаследовать класс A от интерфейса IComparer и реализовать его метод Compare()
Что будет напечатано в консоли?
class A
{
static A()
{
Console.WriteLine("Static Hello from A");
}
public A()
{
Console.WriteLine("Hello from A");
}
}
class B
{
public static string x = "Hello";
static B()
{
Console.WriteLine("Static Hello from B");
}
public B()
{
Console.WriteLine("Hello from B");
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
Console.WriteLine(B.x);
}
}
Варианты ответов:
1) Hello from A Static Hello from A Hello
2) Hello from A Hello
3) Static Hello from A Hello from A Static Hello from B Hello
4) Static Hello from A Hello from A Static Hello from B Hello from B Hello
5) Ошибка компиляции
Что будет напечатано в консоли?
class A
{
static A()
{
Console.WriteLine("Static Hello from A");
}
public A()
{
Console.WriteLine("Hello from A");
}
}
class B
{
public static string x = "Hello";
static B()
{
Console.WriteLine("Static Hello from B");
}
public B()
{
Console.WriteLine("Hello from B");
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
Console.WriteLine(B.x);
}
}
Варианты ответов:
1) Hello from A Static Hello from A Hello
2) Hello from A Hello
3) Static Hello from A Hello from A Static Hello from B Hello
4) Static Hello from A Hello from A Static Hello from B Hello from B Hello
5) Ошибка компиляции
Что напечатает следующий код?
internal class C:B
{
public C()
{
Console.WriteLine("This is ctor C");
}
public void Print()
{
Console.WriteLine("This is C");
}
}
interface B
{
void Print();
}
class A : B,C
{
public void Print()
{
Console.WriteLine("This is A");
}
}
class Program
{
private static void Main(string[] args)
{
B a = new A();
((C)a).Print();
}
}
Что напечатает следующий код?
internal class C:B
{
public C()
{
Console.WriteLine("This is ctor C");
}
public void Print()
{
Console.WriteLine("This is C");
}
}
interface B
{
void Print();
}
class A : B,C
{
public void Print()
{
Console.WriteLine("This is A");
}
}
class Program
{
private static void Main(string[] args)
{
B a = new A();
((C)a).Print();
}
}
Выполнится ли следующий фрагмент кода?
class A{
private string s;
public string S{
get{
return s;
}
set {
s = value;
}
}
public void get_S(){
//...тело метода
}
public void set_S(){
// ...тело метода
}
}
Выполнится ли следующий фрагмент кода?
class A{
private string s;
public string S{
get{
return s;
}
set {
s = value;
}
}
public void get_S(){
//...тело метода
}
public void set_S(){
// ...тело метода
}
}
Что будет выведено на экран следующим кодом?
public interface IUIControl
{
void Paint();
}
public interface IEditBox : IUIControl
{
new void Paint();
}
public interface IDropList : IUIControl
{
new void Paint();
}
public class ComboBox : IEditBox, IDropList
{
void IEditBox.Paint()
{
Console.WriteLine("ComboBox.IEditBox.Paint()");
}
void IUIControl.Paint()
{
Console.WriteLine("ComboBox.IUIControl.Paint()");
}
public void Paint()
{
//((IUIControl)this).Paint();
Console.WriteLine("ComboBox.Paint()");
}
}
public class EntryPoint
{
static void Main()
{
ComboBox cb = new ComboBox();
cb.Paint();
((IEditBox)cb).Paint();
((IDropList)cb).Paint();
((IUIControl)cb).Paint();
}
}
Варианты ответов:
1)
ComboBox.Paint()
ComboBox.IEditBox.Paint()
ComboBox.IUIControl.Paint()
ComboBox.IUIControl.Paint()
2)
ComboBox.Paint()
ComboBox.IEditBox.Paint()
ComboBox.Paint()
ComboBox.IUIControl.Paint()
3)
Не скомпилируется
4)
Произойдёт ошибка выполнения
Что будет выведено на экран следующим кодом?
public interface IUIControl
{
void Paint();
}
public interface IEditBox : IUIControl
{
new void Paint();
}
public interface IDropList : IUIControl
{
new void Paint();
}
public class ComboBox : IEditBox, IDropList
{
void IEditBox.Paint()
{
Console.WriteLine("ComboBox.IEditBox.Paint()");
}
void IUIControl.Paint()
{
Console.WriteLine("ComboBox.IUIControl.Paint()");
}
public void Paint()
{
//((IUIControl)this).Paint();
Console.WriteLine("ComboBox.Paint()");
}
}
public class EntryPoint
{
static void Main()
{
ComboBox cb = new ComboBox();
cb.Paint();
((IEditBox)cb).Paint();
((IDropList)cb).Paint();
((IUIControl)cb).Paint();
}
}
Варианты ответов:
1)
ComboBox.Paint()
ComboBox.IEditBox.Paint()
ComboBox.IUIControl.Paint()
ComboBox.IUIControl.Paint()
2)
ComboBox.Paint()
ComboBox.IEditBox.Paint()
ComboBox.Paint()
ComboBox.IUIControl.Paint()
3)
Не скомпилируется
4)
Произойдёт ошибка выполнения
Скомпилируется ли следующий код?
namespace A
{
private class B
{
void f()
{ }
}
class Program
{
static void Main(string[] args)
{
B b = new B();
b.f();
}
}
}
Скомпилируется ли следующий код?
namespace A
{
private class B
{
void f()
{ }
}
class Program
{
static void Main(string[] args)
{
B b = new B();
b.f();
}
}
}
В групповой делегат объединили несколько функций, возвращающих значение int. Затем делегат вызвали. Какое утверждение верно?
1) Делегат вернет результат первой функции в цепочке
2) Делегат вернет массив int (результаты всех функций)
3) Объединять функции в делегат нельзя
4) Делегат вернет результат последней функции в цепочке
В групповой делегат объединили несколько функций, возвращающих значение int. Затем делегат вызвали. Какое утверждение верно?
1) Делегат вернет результат первой функции в цепочке
2) Делегат вернет массив int (результаты всех функций)
3) Объединять функции в делегат нельзя
4) Делегат вернет результат последней функции в цепочке
Ключевое слово sealed можно применить только к ...
Ключевое слово sealed можно применить только к ...
Что будет выведено на экран в результате исполнения кода?
class App {
static IEnumerable<string> Get() {
yield return "Hello";
Console.WriteLine("Borland");
yield return "World";
}
static void Main(string[] args) {
foreach (string s in Get()) {
Console.WriteLine(s);
Console.WriteLine("C#");
}
}
}
Варианты ответов:
1)
Hello
C#
2)
Hello
C#
Borland
World
C#
3)
Hello
C#
World
C#
4)
Hello
Borland
World
C#
Что будет выведено на экран в результате исполнения кода?
class App {
static IEnumerable<string> Get() {
yield return "Hello";
Console.WriteLine("Borland");
yield return "World";
}
static void Main(string[] args) {
foreach (string s in Get()) {
Console.WriteLine(s);
Console.WriteLine("C#");
}
}
}
Варианты ответов:
1)
Hello
C#
2)
Hello
C#
Borland
World
C#
3)
Hello
C#
World
C#
4)
Hello
Borland
World
C#
Каков будет результат при выполнении следующего кода?
struct Book
{
public string author;
public string title;
public int copyright;
public Book()
{
author = "aaa";
title = "bbb";
copyright = 50;
Console.WriteLine("This is a book.");
}
}
class Program
{
static void Main(string[] args)
{
Book book1 = new Book();
Console.WriteLine("This is not a book");
}
}
Каков будет результат при выполнении следующего кода?
struct Book
{
public string author;
public string title;
public int copyright;
public Book()
{
author = "aaa";
title = "bbb";
copyright = 50;
Console.WriteLine("This is a book.");
}
}
class Program
{
static void Main(string[] args)
{
Book book1 = new Book();
Console.WriteLine("This is not a book");
}
}
Как получить в выводе консоли текст "Hello World!"?
public abstract class myClassBase
{
public virtual void Hello()
{
Console.Write("Hello ");
}
}
public class myClass : myClassBase
{
public override void Hello()
{
//base.Hello(); 1
//this.Hello(); 2
Console.Write("World!");
}
}
static void Main(string[] args)
{
myClassBase my = new myClass();
my.Hello();
Console.ReadKey();
}
Как получить в выводе консоли текст "Hello World!"?
public abstract class myClassBase
{
public virtual void Hello()
{
Console.Write("Hello ");
}
}
public class myClass : myClassBase
{
public override void Hello()
{
//base.Hello(); 1
//this.Hello(); 2
Console.Write("World!");
}
}
static void Main(string[] args)
{
myClassBase my = new myClass();
my.Hello();
Console.ReadKey();
}
Переменная типа A присваивается переменной типа B. В каком случае происходит упаковка (boxing)?
Переменная типа A присваивается переменной типа B. В каком случае происходит упаковка (boxing)?