Я вчера задал этот вопрос и получил много хороших ответов, только я понял, что мой вопрос был неправильным, и здесь я хочу перефразировать его.Элементы общего интерфейса
У меня есть этот интерфейс
public interface IFoo<T>
{
T Value();
}
с этим члены
public class Bar : IFoo<string>
{
string Value(){return "test";}
}
public class Bar2 : IFoo<int>
{
int Value(){return "1";}
}
Это работает отлично, но теперь я хочу, чтобы сделать класс, который имеет свойство, которое может быть либо бар или BAR2 так как это
public class Test
{
IFoo test;
}
Только это не скомпилируется, потому что Ifoo должен иметь общий тип. Только я не знаю заранее, буду ли я использовать Bar2 или Bar.
Надеюсь, я объяснил это хорошо, но если нет, я постараюсь сделать это более ясным.
Explaination
Я пытаюсь (только ради прикольных), чтобы создать апи Dicom (медицинских изображений и т.д.). Часть стандарта dicom - это ValueRepresentations (VR). Это типы, которые используются для хранения (мета) информации об изображении.
Такие VR представляют собой, например: AgeString, Date, UnsignedShort, SequenceOfItems.
Для всех этих VR я хочу иметь некоторые методы, которые все они должны реализовать (кодирование и т. Д.). Но я все хочу, чтобы они могли хранить ценность. Является ли это Int, или DateTime или String, не следует ли это помещать в интерфейс?
Если вы не знаете, впереди какой тип поля будет, то вы должны использовать объект. –