2017-07-28 4 views
0

usingで定義されたエイリアス型をジェネリッククラスに渡すにはどうすればよいですか?C#のジェネリック型パラメータとしてエイリアス型を使用する方法

私は次のコードを試してみました:

using ID = Int32; // it might be replaced with `String`. 
using CC = C<ID>; 

public class C<T> { 
    T id; 
} 

をし、エラーが発生します。

Error CS0246 The type or namespace name 'ID' could not be found (are you missing a using directive or an assembly reference?)

しかし、usingディレクティブは、右のエラーが発生した行の上にあります。 私は何かを見逃しましたか?

+1

あなたは何を達成しようとしていますか? – mayu

+0

これは現時点では可能ではないようですが、最初のコメントを参照してください。[こちら](0120-18752-0303290) –

+1

リンクされた複製は仕様を引用していますが、外側の名前空間では 'ID'を、内側の名前空間では' CC'を宣言します。彼らが同じ名前空間にいるという事実はここでの問題です。 –

答えて

0

は、私は本当にあなたがこれを達成しようとしているのか分からないが、あなたは、しかし、具体的なタイプでC<T>から派生します継承

public class CC : C<ID> 
{ 
} 

クラスCCと似た何かを行うことができます。したがって、CC.TInt32(または何でも)です。

-1

エイリアスは使用しないでください。

public class C<T> { 
    T id; 
} 

...

void Foo() { 
    var x = new C<Int32>(); 

    var y = new C<string>(); 
} 
関連する問題