クラス内のジェネリックフィールドをコンストラクタ内の特定のタイプに特化する方法はありますか?例えばクラスのジェネリックフィールドのインスタンス化
:
class concreteClass1
{
private int a;
public concreteClass1(int a)
{
this.a = a;
}
}
class concreteClass2
{
string b;
public concreteClass2(string b)
{
this.b = b;
}
}
class A<T>
{
private T field;
public A(int x)
{
field = new concreteClass1(x); //error here CS0029
}
public A(string y)
{
field = new concreteClass2(y); //error here CS0029
}
}
のでT
がconcreteClass1
またはconcreteClass1
のいずれであってもよく、それぞれのctorsが異なるシグネチャを持つことになります。
誰かが「new A(42);」と書くときに何をしたいですか? –
Servy
それから、 'A'は私が読み書きできる' concreteClass1'フィールドを持っています。 @Servy – shinzou
これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようです。何をしようとしているのですか?これを行う必要がありますか? – juharr