5

たとえば X などのメソッドでクラス名が必要です。一方、型安全性を失いたくないので、他の開発者が文字列 (クラス名) をメソッドに渡すことを許可しません。

このようなもの:

void X( ??? class) // --> don't know how
{
 var className = get the name of class // --> which I don't know how
 Console.WriteLine(className);
}

X(tblEmployee); //--> usage of X, where tblEmployee is a POCO class
4

3 に答える 3

15

あなたが探しているのは、Typeクラスに関するメタデータを含む a と呼ばれるものです。

typeof(class)または.GetType()メソッドは、任意のobjectインスタンスで使用できます。

違いは、typeof静的にGetType解決されるものと実行時に解決されるものです。

void X(Type type)
{
    Console.WriteLine(type.FullName);
}

X(typeof(tblEmployee));
于 2012-12-28T13:13:47.957 に答える
7

次のように、ジェネリックと のFullNameプロパティをType使用できます。

void WriteClassName<TClass>(TClass item)
  where TClass : class {
    Console.WriteLine(item.GetType().FullName);
}

次に、要件に従って制約を適用しTClassます。

于 2012-12-28T13:16:50.550 に答える
1
void X(Type type)
{
    if(type == typeof(DesiredType))
    {
          Do Some Action
    }
}
于 2012-12-28T13:23:35.547 に答える