У меня есть интерфейс для базового класса, и каждый класс, который наследуется от базового класса, должен иметь поле идентификации, которое сообщает приложению, какой это тип объекта.
Я хотел использовать это свойство вдва разных способа:
Без создания экземпляра объекта
if (someValue == TestA.Id)
return new TestA();
elseif (someValue == TestB.Id)
return new TestB();
И как свойство интерфейса
void DoSomething(ITest testObject)
{
SomeValue = testObject.Id;
}
Есть ли простой способ определитьId
поле в интерфейсе, но все еще оно доступно для использования без создания экземпляра класса?
Сейчас я использую следующий код.Я мог бы добавить к интерфейсу только для чтения свойство Id
, которое возвращает строку констант, однако я надеялся, что есть более простой способ, о котором я просто не знаю.
public interface ITest
{
}
public class TestA : ITest
{
public const string Id = "A";
}