私はこれについて頭を悩ませようとしています。最近のバージョンの .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% わかりません — メンバー変数を初期化するのではなく、戻り値を初期化しているのでしょうか? どう見てもこんな感じで、今まで見たことがありません。testSingleResult
mockCustomer
IFunctionResult