2008-12-25 56 views
4

我有幾個程序,爲簡單起見,如下所示:具有不同返回類型的一種功能...可能與泛型有關嗎?

public string FetchValueAsString(string key) 
public int FetchValueAsInteger(string key) 
public bool FetchValueAsBoolean(string key) 
public DateTime FetchValueAsDateTime(string key) 

我知道我可能只是有一個返回一個方法和對象類型,只是做了轉換,但我想知道是否有是一種方法,我可以只有一個方法調用,並以某種方式使用泛型來確定返回值...可能嗎?

回答

12
public static T FetchValue<T>(string key) 
{ 
    string value; 
    // logic to set value here 
    // ... 
    return (T)Convert.ChangeType(value, typeof(T), CultureInfo.InvariantCulture); 
} 
+0

這工作完美...謝謝! – mattruma 2008-12-25 17:56:38

2

我假設你正在用C#編寫代碼。如果你是,那麼你可以做你說什麼這樣的:

public T FetchValueAsType<T>(string key) 

你可以這樣調用的版本是這樣的:

FetchValueAsType<int>(key); 

話雖這麼說,通過框架提供的System.Convert類的工作只是並且具有相似的語法。你可以在這裏找到MSDN文章吧: http://msdn.microsoft.com/en-us/library/system.convert.aspx

1

這是可能的,但不知道該方法的實現,這是很難說是否有東西可以得到的,或者如果它是真正的/易於實現作爲一種通用的。

無論如何:

public T FetchValue<T>(string key) 

將是你希望做什麼。

相關問題