string s= bbb.EndInvoke(ar);
BeginInvoke(new MyDelegat(PrintThat), new object[] {s});
Интересует - ,new object[] {s})
Почему s в фигурных скобках?
В этом выражении
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".
Продвижение своими сайтами как стратегия роста и независимости