В Java я могу указать универсальный с подстановочным знаком "?".Можно создать карту, подобную этой:
Map<String, ?>
.
Я работаю с C # и мне нужно Dictionary<String, SomeInterface<?>>
(где? Может быть int, double, anyтип).Возможно ли это в C #?
РЕДАКТИРОВАТЬ:
Пример:
interface ISomeInterface<out T>{
T Method();
void methodII();
}
class ObjectI : ISomeInterface<int>{
...
}
class ObjectII : ISomeInterface<double>{
...
}
class ObjectIII : ISomeInterface<string>{
....
}
Я пытался отобразить эти объекты в словарь, как:
Dictionary<String, ISomeInterface<?>> _objs = new Dictionary<String, ISomeInterface<?>();
_objs.Add("Object1", new ObjectI());
_objs.Add("Object2", new ObjectII());
_objs.Add("Object3", new ObjectII());
foreach(var keyVal in _objs){
Console.WriteLine(keyVal.Method());
}
Объекты, которые реализуют ISomeInterface, загружаются во время выполнения с использованием Assembly и Activator.createInstance.В момент создания я не знаю, если объекты реализуют ISomeInterface<int>
или ISomeInterface<double>
.
Любая помощь очень ценится.