2017-07-28 83 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

這似乎不可能在此刻,plase看到第一個評論[這裏](http://stackoverflow.com/q/3720222/303290) –

+1

雖然鏈接副本引用規範,有一種解決方法,在外部命名空間中聲明'ID',在內部命名空間中聲明'CC'。他們在同一個命名空間的事實是這裏的問題。 –

回答

0

我真的不知道你正在努力實現這個什麼,而是你可以,但是,做繼承

public class CC : C<ID> 
{ 
} 

CC類似的東西會從C<T>得出一個具體的類型。因此CC.T將是類型Int32(或其他)。

-1

請勿使用別名。

public class C<T> { 
    T id; 
} 

...

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

    var y = new C<string>(); 
} 
相關問題