2010-03-15 25 views
4

前一段時間,我正在閱讀一篇關於一系列處理字符串轉換爲泛型類型的類的文章。下面是一個模擬類結構。基本上,如果你設置的StringValue它會進行一些轉換成T型數據綁定時執行字符串轉換的通用結構

public class MyClass<T> 
{ 
    public string StringValue {get;set;} 
    public T Value {get;set;} 
} 

我不記得我讀的文章,或者類我讀到有關的名稱。這是否已經在框架中實現?或者我應該創建自己的?

回答

0

這裏是一個小把戲將字符串轉換成簡單類型(結構類型):

public T GetValueAs<T>(string sValue) 
    where T : struct 
{ 
    if (string.IsNullOrEmpty(sValue)) 
    { 
     return default(T); 
    } 
    else 
    { 
     return (T)Convert.ChangeType(sValue, typeof(T)); 
    } 
} 
1

這在.NET框架中不存在。你必須創建你自己的。

+0

我看到在網上這樣的一個例子,我敢肯定,這是在MSDN上,這可能是部分一個開源項目......啊..我只是不能記住... – 2010-03-15 01:52:24

-1

我不記得那樣,但如果確實存在,它幾乎肯定會是一個抽象類或接口,仍然需要您自己實現轉換邏輯。微軟確實沒有辦法編寫可以接受尚未編寫的類的字符串表示的代碼,只知道如何正確構建該類。

當你這樣想的時候,抽象的功能已經可以在Func<string, T>或者其中很多序列化格式之一(xml,json,protobuf等)中。

+0

實際上,你可以讓你自己的泛型類嘗試處理將任何字符串轉換爲類型爲「T」的任何類一般......回答我提問的類似問題顯示如何:http://stackoverflow.com/questions/312858/how-can-i-convert-types-at-runtime – 2010-03-15 02:20:24