c#语法帮助->;得到什么<;T>;()T的意思是 publicstatict Get(),其中T:class { 字符串implName=Program.Settings[typeof(T).Name].ToString(); objectconcrete=Activator.CreateInstance(Type.GetType(implName)); 返回(T)混凝土; }
请解释一下Get()是什么意思c#语法帮助->;得到什么<;T>;()T的意思是 publicstatict Get(),其中T:class { 字符串implName=Program.Settings[typeof(T).Name].ToString(); objectconcrete=Activator.CreateInstance(Type.GetType(implName)); 返回(T)混凝土; },c#,C#,请解释一下Get()是什么意思 欢迎放置一些阅读URL。这是一个通用URL的示例T'表示一个类型 例如: public static T Get<T>() where T : class { string implName = Program.Settings[typeof(T).Name].ToString(); object concrete = Activator.CreateInstance(Type.GetType(implName)); retu
欢迎放置一些阅读URL。这是一个通用URL的示例T'表示一个类型 例如:
public static T Get<T>() where T : class
{
string implName = Program.Settings[typeof(T).Name].ToString();
object concrete = Activator.CreateInstance(Type.GetType(implName));
return (T)concrete;
}
string result=Get();
在谷歌上搜索泛型。这将让您开始:其中T:class对
T
允许的类型进行限制。这将
Get()
不是类
string result = Get<string>();
publicstatict Get(),其中T:class
{
字符串implName=Program.Settings[typeof(T).Name].ToString();
var implType=Type.GetType(implName);
return(T)Activator.CreateInstance(implType);
}
在这种特殊情况下,这将约束T为引用类型。第一个示例将引发编译器错误,因为int
不是引用类型。您应该在这里提到不会编译的where
约束(或删除第一个示例)的重要性。不存在这样的过载。啊,是的。。。糟糕的是,T和type参数是不明确的。请注意,这段代码对我来说非常脆弱。如果您使用设置中没有键的类型调用它,它将抛出异常。
public static T Get<T>() where T : class
{
string implName = Program.Settings[typeof(T).Name].ToString();
var implType = Type.GetType(implName);
return (T)Activator.CreateInstance(implType);
}