0

私はこれについて頭を悩ませようとしています。最近のバージョンの .Net のオブジェクト初期化子については知っていますが、以下のコードで混乱します。最初は呼び出しコードで、その下に必要なクラスとインターフェイスの定義を配置しました。

var mockCustomer = new Customer_GetUserByCustIdResult();
var testSingleResult = new SingleResult<Customer_GetUserByCustIdResult> { mockCustomer };


public class SingleResult<T> : ISingleResult<T>
public interface ISingleResult<T> : IEnumerable<T>, IEnumerable, IFunctionResult, IDisposable

Visual Studio 2012 の IntelliSense を使用すると、クラスをnew起動すると、戻り値として扱われることがわかります。これは、私が信じているインターフェイスと関係があると思われます。これがどのように機能しているのかは 100% わかりません — メンバー変数を初期化するのではなく、戻り値を初期化しているのでしょうか? どう見てもこんな感じで、今まで見たことがありません。testSingleResultmockCustomerIFunctionResult

4

1 に答える 1

1

What you're looking at is a collection initializer, see: http://msdn.microsoft.com/en-us/library/bb384062.aspx

于 2012-11-15T17:53:24.547 に答える