Обобщения C # 2.0: Как создать объект Action с нулевыми параметрами
Прежде всего, я использую VS2005 и C # 2.0.
Я пытаюсь установить поле со списком. Свойство Text внутри события SelectedIndexChanged. От другогонить здесь, на StackOverflow, это было сделано следующим образом:
BeginInvoke(new Action(() => someCombobox.Text = "x" ));
Теперь, во-первых, это возвращает мне ошибку компилятора. Я считаю, что это потому, что объект Action ведет себя по-разному в двух языковых спецификациях. В C # 2.0 объект Action, похоже, нуждается в<T>
структура во всех декларациях. Может быть, я ошибаюсь, но мне хотелось бы прояснить это.
Что работает, это следующее:
BeginInvoke(new Action<string>( delegate { someCombobox.Text = "x"; }), new object[] { "" });
Тем не менее, мне просто кажется странным, что яhave to определить объект Action с параметром типа (тем более, что я не собираюсь передавать какие-либо параметры)! Каким-то образом удаление этого параметра также сделает пустой новый объект [] устаревшим, чего я и хочу.
Может кто-нибудь помочь мне упростить вышеуказанный вызов?
Наконец, гарантируется ли, что BeginInvoke завершит работу после SelectedIndexChanged и, таким образом, обновит комбинированный список & apos; Текстовое свойство с правильным текстом?
Я очень признателен за ответы на эти вопросы.