1

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

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

3 回答 3

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");
于 2013-04-02T09:40:12.697 回答
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");
于 2013-04-02T09:41:00.047 回答
2

你为什么不试试这样的泛型

   public T Get<T>(string value)
   {
     // do your stuff and cast the value
   }

其中 T 是类型

于 2013-04-02T09:41:11.827 回答