C # эквивалент класса.forName () в Java

Possible Duplicate:
Get type name without full namespace in C#

Кто-нибудь знает, как мы можем получить имя класса простым способом, как то, что Java может выполнять с помощью class.getName() ?

NB: Да, есть некоторый беспорядочный обходной способ, например CreateInstance типа класса, а затем получить имя объекта, но я хочу простой способ.

Изменить 1:

На самом деле, мне нужно имя класса в методе say 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
1
nl ja de

3 ответы

Вы имеете в виду, как это?

typeof(YourClass).Name

Чтобы уточнить, в .NET framewилиk есть класс с именем Type . Этот класс имеет свойство с именем Name , которое получает имя класса.

Таким образом, чтобы получить тип класса во время компиляции, вы можете использовать typeof .

var typeName = typeof(YourClass).Name

Если вы не знаете тип во время выполнения, вы можете получить его с помощью метода GetType() . Это распространено для всех объектов .NET.

Animal a = new Dog();
var typeName = a.GetType().Name;

Ответ для редактирования 1

Вам нужно передать параметр Type

void X(Type classType) 
{
     var className = classType.Name;
     Console.WriteLine(className);
}

И вызов X должен выглядеть следующим образом:

X(typeof(YourClass));

или

X(YourInstance.GetType());
9
добавлено

Попробуй это:

typeof(YourClass).FullName;
1
добавлено

Если class

  • instance of some type:

    class.GetType().Name;
    class.GetType().FullName;//with namespace
    
  • type itself:

    typeof(class).Name;
    typeof(class).Name;//with namespace
    
1
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot