#c_sharp
string s= bbb.EndInvoke(ar); BeginInvoke(new MyDelegat(PrintThat), new object[] {s}); Интересует - ,new object[] {s}) Почему s в фигурных скобках?
Ответы
Ответ 1
В этом выражении new object[] {s} создается массив объектов из одного элемента, который инициализируется строкой s. В результате ссылка на этот массив передается в качестве второго аргумента в вызов метода BeginInvoke BeginInvoke( new MyDelegat(PrintThat), new object[] {s} ); Это более наглядно видно из объявлений массивов. Например, string s = "Hello"; object[] a = new object[] { s }; object[] a1 = new object[1] { s }; object[] a2 = { s }; Или такое объявление массива и вывод его элементов на консоль object[] a = new object[] { "Hello", "World" }; Console.WriteLine("{0}, {1}!", a[0], a[1]); В этом случае будет создан массив с двумя элементами по числу инициализаторов. Для полноты картины можете выполнить следующий фрагмент кода string s = "Hello"; Console.WriteLine(new object[] { s }[0]); На консоль будет выведена строка "Hello".
Комментариев нет:
Отправить комментарий