Как и в Java, если мы объявляем параметризированный конструктор класса как:Создание типа экземпляра в C#
public KeyCountMap(Class<? extends Map> _mapType)
{
_map = _mapType.newInstance();
}
где _MAP определяется как:
private Map<T, MutableInt> _map = new LinkedHashMap<T, MutableInt>();
В то время как в C#, мы будем использовать в качестве :
Type
вместо Class<? extends Map>
private Dictionary<T, MutableInt> _map = new Dictionary<T, MutableInt>();
вместо
private Map<T, MutableInt> _map = new LinkedHashMap<T, MutableInt>();
EDIT
Действительное конструктор Java рассмотрен вопрос:
@SuppressWarnings({ "unchecked", "rawtypes" })
public KeyCountMap(Class<? extends Map> _mapType) throws InstantiationException, IllegalAccessException
{
_map = _mapType.newInstance();
}
Поскольку не существует метода, как newInstance()
в C#, и я не уверен, что Activator.CreateInstance()
делает точно.
Как создать новый экземпляр объекта класса Type
в C#, как это сделано при использовании java?
Возможный дубликат [Создать экземпляр родового типа?] (Http://stackoverflow.com/questions/731452/create-instance-of-generic-type) – Hristo
Как этот вопрос Java? – Underbalanced
@Chris Ваш предложенный дублированный вопрос говорит о параметре less constructor, тогда как здесь параметризованный. И что ? – maliks