Я пытаюсь создать универсальный класс, который принимает 3 типа, либо простую строку, IList<string>
или IList<OntologyStore>
.
public class OntologyStore
{
}
public sealed class jim<T> where T:new()
{
string J;
IList<string> X = null;
IList<OntologyStore> X1 = null;
public jim()
{
if (typeof(T) == typeof(String))
{
J = string.Empty;
}
if (typeof(T) == typeof(OntologyStore))
{
X1 = new List<OntologyStore>();
}
if (typeof(T)==typeof(IList))
{
X = new List<string>();
}
}
}
Я легко могу создать, что вы ожидаете, что работать,
jim<OntologyStore> x1=new jim<jim<OntologyStore>()
как и следовало ожидать, но когда я вставил
jim<string> x2=new jim<string>()
компилятор сообщает, что строка не является типом abtract, что вы ожидаете.
Можно ли создать универсальный класс, экземпляр которого можно создать как класс, содержащий строку, или IList<string>
, или IList<OntologyStore>
?