Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.
например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.
public Class myClass
{
public int prop1 {get;set;}
}
Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref.prop1 = 1; //This line throws error
}
}
выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.
Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref = new myClass();
ref.prop1 = 1;
}
}
Просто используйте .Name
следующим образом:
typeof(T).Name
Это дает, например, «String», также .FullName
, который даст «System.String»
typeof(T).Name //would work
Но в зависимости от этого и принятия решений на его основе, вероятно, не очень хорошая идея.
Важным правилом здесь является то, что вы, вероятно, должны использовать FullName, когда это возможно.
Например, в операторах case switch или в блоках if else или в словарных словах.
Имя класса не является идеальной вещью, от которой зависит, поскольку вы потенциально можете иметь одно и то же имя класса в разных Пространства имен. NamespaceA.String и NamespaceB.String вполне возможно ...