返回值的类型类似于参数中的类型

时间:2013-04-02 09:39:09

标签: c# .net generics

我可以创建一个方法,使其返回我在参数中指定的类型的值吗? 例如:

int i = Settings.Get("count", typeof(int));
string s = Settings.Get("count", typeof(string));
Guid g = Settings.Get("count", typeof(Guid));

3 个答案:

答案 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是类型