インターフェイスを作成しようとしています ' 1 つの int パラメーターを持つコンストラクターを持つようSomething<T>
に制限したいと考えていました。T
のようなことができますwhere : new()
。では、なぜ私はそれを作ることができないのwhere T : new(int)
ですか?
1 に答える
1
T のインスタンス化をユーザーに任せることで、これを回避できます。何かのようなもの:
class MyTCreator<TParam, T>
{
private Func<TParam, T> generator;
public MyTCreator(Func<TParam, T> generator)
{
this.generator=generator;
}
public T CreateT(TParam param)
{
return generator(param);
}
}
クラスを次のように使用します。
var creator = new MyTCreator<long, DateTime>(ticks => new DateTime(ticks));
DateTime dt = creator.CreateT(12345L);
于 2013-09-25T20:35:58.160 に答える