2017-01-31 2 views
0

私は混乱します。ドキュメントによれば、ThreadStartまたはParametrizedThreadStartデリゲートが必要ですが、メソッド参照を渡すことができます。どのようにしてメソッドへの単純な参照を受け付けるのですか?これを具体的に決定するコンストラクタシグネチャは何ですか?または、デリゲートは、タイプチェックの際にメソッド参照と機能的に同じですか? これはネットでは経験の浅い人ですが、これは私にとって非常に混乱しています。なぜSystem.Threading.Threadコンストラクタに関数名を渡すことができます

ありがとうございます。

+0

一行... – Sinatr

+0

あなたは関数の名前を渡すと、それは関数からのparams /戻り値の型をinferes機能へのデリゲートを作成します。最終的にコンパイルされたコードは同じになります。 – Gusman

+1

またはおそらく[この1](http://stackoverflow.com/q/6056983/1997232)? – Sinatr

答えて

0

デリゲートであり、ソートの「メソッドリファレンス」であり、定義によってメソッドへの参照もあります。だから、2は等価です:時々コードの価値が数段落の

var thread = new Thread(new ThreadStart(MyMethod)); 
// or 
var thread = new Thread(MyMethod); // Assuming Mymethod conforms to the right spec 
関連する問題