Страницы

Поиск по вопросам

четверг, 19 декабря 2019 г.

Что это за синтаксис в передаче параметра - “new object[] {s}”

#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".

Комментариев нет:

Отправить комментарий