まず、VS2005とC#2.0を使用しています。C#2.0 generics:パラメータがゼロのActionオブジェクトを作成する方法
私は、SelectedIndexChangedイベントの内部からコンボボックスのTextプロパティを設定しようとしています。 StackOverflowの上ここでは別のthreadから、これは次のように行われ、提案された:このすべての最初の、今
BeginInvoke(new Action(() => someCombobox.Text = "x"));
を私のためのコンパイラエラーを返します。これは、Actionオブジェクトが2つの言語仕様で異なる動作をするためです。 C#2.0では、Actionオブジェクトはすべての宣言で<T>
構造体を必要とするようです。たぶん私は間違っていますが、私はそれを明確にしたいと思います。しかし、ちょうど私がするつもりはないよ、特に以来(typeパラメータを使用して、Actionオブジェクトを定義しに私が持っているように私には非常に奇妙なようだ
BeginInvoke(new Action<string>(delegate { someCombobox.Text = "x"; }), new object[] { "" });
:どのような作業には、次のされない
パラメータを渡してください)!何らかの形でこのパラメータを削除すると、空の新しいオブジェクト[]も廃止されます。
上記の呼び出しを簡略化できる人はいますか?
最後に、BeginInvokeがSelectedIndexChangedの後に終了し、コンボボックスのTextプロパティを正しいテキストで更新することが保証されますか?
これらの質問に対する回答を本当にありがとうと思います。
コンパイルエラーは、ラムダ式のためです。 LambdaはC#3.0で新しく、デリゲート作成構文の短い形式です。 –