1
私はパラメータとしてFunc<T, long>
のメソッドを持っています。私はこのような方法を呼びたい:long型の値を返すジェネリック型のFuncを実行
Write(x => x.Id, "Some info");
このメソッドは次のようになります。私が持っている問題はその方法の中にある。私はlong
の値を得るために関数を実行する方法を知らない。
public void Write<TEntity>(Func<TEntity, long> func, string info)
{
var id = func(); // Doesn't work, func() needs an argument...
}
これはどのように機能しますか?どのように機能を実行できますか?
よくインスタンスを渡します。引数としてTEntityを指定します。そうでなければ、あなたは "Id"を読もうとしていますか? – Evk
@Evk 'func(TEntity)'を意味するなら、それは動作しません。 *** TEntityは型であり、与えられたコンテキストでは無効です***。 – w00
いいえ、インスタンスを意味しません。 TEntityがYourTypeであり、YourType(var x = new YourType(){Id = 1})のインスタンスがあるとします。それをあなたの関数に渡します> var id = func(x)。あなたが読もうとしている**のIDについて考えてみてください。 – Evk