База ответов ИНТУИТ

Программирование на языке высокого уровня C#

<<- Назад к вопросам

Дан фрагмент кода:
public class Publisher { public event EventHandler OnPublish; public void DoPublish() {   OnPublish(this, null); }}   
Что произойдет, если метод DoPublish() инициирует событие OnPublish, и при этом не будет ни одного подписчика этого события?

(Отметьте один правильный вариант ответа.)

Варианты ответа
Будет выброшено исключение ApplicationException
Будет выброшено исключение NullReferenceException(Верный ответ)
Будет выброшено исключение NoEventSubscribersException
Событие будет инициировано, но поскольку подписчиков нет, то никакого эффекта это не вызовет
Событие будет инициировано, и система его обработает
Похожие вопросы
Дан фрагмент кода:
public class Log { private string myLogFileName; public delegate void LogFileMissing(object sender, EventArgs e); public event LogFileMissing OnLogFileMissing; public string LogFilename {   get { return myLogFileName; }   set { myLogFileName = value; } } public bool LogItem(string item) {   if (!System.IO.File.Exists(myLogFileName)) {     // инициирование события, если файл не найден     (КОД)     return false;   }   // выполнение логирования   // возврат   return true; }}     
Что необходимо вставить на место (КОД) для инициирования события OnLogFileMissing?
Дан фрагмент кода:
public class Log { private string myLogFileName; public delegate void LogFileMissing(object sender, EventArgs e); public event LogFileMissing OnLogFileMissing; public string LogFilename {   get { return myLogFileName; }   set { myLogFileName = value; } } public bool LogItem(string item) {   if (!System.IO.File.Exists(myLogFileName)) {     // инициирование события, если файл не найден     (КОД)     return false;   }   // выполнение логирования   // возврат   return true; }}     
Что необходимо вставить на место (КОД) для инициирования события OnLogFileMissing?
Дан фрагмент кода:
public event DiskChangeHandler OnDiskChange; public class DiskChangeEventArgs : EventArgs {  public int Sequence;  public string Message;  public DiskChangeEventArgs(int sequence, string message) {    Sequence = sequence;    Message = message;  } } // запись файла на несколько дискет; когда дискета заполнена, // возникает событие – подсказка вставить следующую дискету public void WriteToFloppy() {  // цикл записи, здесь подсказка вставить следующую дискету  OnDiskChange(null, new DiskChangeEventArgs(2, "Please insert next disk")); }     
Для передачи информации подписчику использован пользовательский класс DiskChangeEventArgs. Какое из описаний делегата подходит для приведенного кода?
Дан фрагмент кода:
public event DiskChangeHandler OnDiskChange; public class DiskChangeEventArgs : EventArgs {  public int Sequence;  public string Message;  public DiskChangeEventArgs(int sequence, string message) {    Sequence = sequence;    Message = message;  } } // запись файла на несколько дискет; когда дискета заполнена, // возникает событие – подсказка вставить следующую дискету public void WriteToFloppy() {  // цикл записи, здесь подсказка вставить следующую дискету  OnDiskChange(null, new DiskChangeEventArgs(2, "Please insert next disk")); }     
Для передачи информации подписчику использован пользовательский класс DiskChangeEventArgs.Какое из описаний делегата подходит для приведенного кода?
Дан фрагмент кода:
public class RunStuff { public void DoSomething() {   // что-то сделать } public void DoAsync(int quantity) {   Thread myThread;   (КОД)   myThread = new Thread(myStart);   // сделать то, что требуется }} }     
Какая строка корректно инициализирует объект myStart класса ThreadStart в месте, обозначенном (КОД)?
Дан фрагмент кода:
public class Run { public void DoStuff() {   // что-то сделать } public void DoAsync(int a) {   Thread myThread;   (КОД)   myThread = new Thread(myStart);   // сделать то, что требуется }} }     
Какая строка корректно инициализирует объект myStart класса ThreadStart в месте, обозначенном (КОД)?
Дан фрагмент кода:
public void CalcLCD(long number1, long number2, ref long LCD) { // вычисление наименьшего общего делителя}public delegate void CalcLCDStart(long number1, long number2, ref long LCD);  …long lcd = 0;CalcLCDStart dlgLCD = new CalcLCDStart(CalcLCD);
Какой фрагмент кода вызывает асинхронно CalcLCD для чисел 15 и 34 и возвращает вычисленное значение по ссылке в переменную lcd?
Дан фрагмент кода:
public void Calc (long number1, long number2, ref long LCD) { // вычисление наименьшего общего делителя}public delegate void CalcStart(long number1, long number2, ref long LCD);  …long lcd = 0;CalcStart dlg = new CalcStart(Calc);   
Какой фрагмент кода вызывает асинхронно Calc для чисел 28 и 75 и возвращает вычисленное значение по ссылке в переменную lcd?
Что выведет на консоль приведенная программа?
namespace ConsoleApplication1{    class A{        public virtual void WriteMessage(){            Console.Write("A.Write ");}    }    class B: A{        public override void  WriteMessage(){            Console.Write("B.Write ");}    }    class C: B{        public new void WriteMessage(){                Console.Write("C.Write ");}    }    class Program{        static void Main(string[] args){            A x = new B();            x.WriteMessage();            x = new C();            x.WriteMessage();}}} 
Что выведет на консоль приведенная программа?
 namespace ConsoleApplication1{    class A{        public virtual void WriteMessage(){            Console.Write("A.Write ");}    }    class B: A{        public override void  WriteMessage(){            Console.Write("B.Write ");}    }    class C: B{        public new void WriteMessage(){                Console.Write("C.Write ");}    }    class Program{        static void Main(string[] args){            A x = new B();            x.WriteMessage();            x = new C();            x.WriteMessage();}}}