2011-07-25 4 views
0

私はC#のジェネリックスをかなり新しくしていて、いくつかのことがどのように機能するのか不思議です。C#ジェネリックス - 使用方法

私が持っている場合は、この:

私のクラスで
public class Foo<T> 

私は単にどのように私は私の方法はT.で作業することができ、デしまうんだろうとT.の種類を返しますメソッドGetTypeを、持っています

public string GetType(); 
{ 
    return T.GetType().ToString(); 
} 

私はわかりやすい例を学びたいと思っています。

ありがとうございました。

+0

'public Type GetType()'(stringではなくType)をオーバーライドしようとしていますか? – Keith

答えて

6
public string GetTypeName() 
{ 
    return typeof(T).ToString(); 
} 

Tそれは実際タイプパラメータで、何かのインスタンスではありません。同様にString.GetType()と言うことはできませんが、typeof(String)と言うことができます。一般に、インスタンスではGetType()、タイプではtypeof(something)と呼び出します。

方法GetTypeobjectタイプで宣言されていて、それを使用しようとするため、コンパイラは文句を言うでしょうので、また、私はGetTypeNameにあなたのGetTypeメソッドの名前を変更しました。

さらに、メソッド本体の前にはセミコロンが違法であるため、削除しました。

関連する問題