2011-08-11 38 views
6

編寫一個接受字符串並基於它填充poco的方法時,最好是使用類似於Int32.Parse()的靜態方法Parse(string s)或重載構造函數,以便接受字符串?解析方法或重載構造函數

回答

9

我更喜歡構造函數版本,但兩者都很容易,因爲構造函數可以調用Parse。這是一種模式,然後在Guid結構(可能其他人也。)

我要補充一點,如果你不處理一個struct,那麼static方法或許應該指的是構造(或甚至因爲你不能在class構造函數中分配給this

編輯:正如TrueWill指出的那樣,如果您確實包括Parse,您也應該包括TryParse。順便說一句,Guid再次具有啓發性:Parse方法實際上使用TryParse,並且只是在TryParse返回false時引發異常。

+0

爲了完整性+1。 – deepee1

0

我會推薦使用.Parse(字符串s)如果它是一個簡單的對象,如果對象存儲多於1-2個值,則應該使用構造函數,換句話說,如果返回值是實例不受解析值的影響。

2

如果該方法可能由於字符串無效而失敗,我會傾向於解析,並按照TryParse pattern包含TryParse

+0

雖然id爲TryParse +1,但仍然使用dlevs,但也嘗試解析 – Manatherin