我可以创建一个方法,使其返回我在参数中指定的类型的值吗? 例如:
int i = Settings.Get("count", typeof(int));
string s = Settings.Get("count", typeof(string));
Guid g = Settings.Get("count", typeof(Guid));
答案 0 :(得分:4)
public T Get<T> (string value)
{
//read setting and cast
//or if you have Setting.Get implementation
return (T)Settings.Get("count", typeof(T));
}
现在你可以
int i = Get<int>("count");
string i = Get<string>("count");
Guid i = Get<Guid>("count");
答案 1 :(得分:2)
您可以通过使方法通用来执行此操作:
Settings.Get<T>(string name);
在Get方法中,您需要加载该值,然后将其强制转换为T
:
public T Get<T>(string value)
{
object o = 1; // read setting;
return (T)o;
}
然后叫它:
int i = Get<int>("count");
答案 2 :(得分:2)
为什么不尝试这样的泛型
public T Get<T>(string value)
{
// do your stuff and cast the value
}
其中T是类型