我是用通用術語表示我的示例,因爲它獲得了點而不必進入我的具體問題詳細信息。強鍵入字符串或其他密封類
假設你有一堆以字符串作爲參數的方法。假設一個字符串是一個人的「名字」,另一個字符串是一個人的「姓氏」。可能有其他的字符串,如「最喜歡的食物」。
現在,在您的代碼中,您將繼續查找運行時錯誤,因爲您正在獲取混合的參數。您可以切換「名字」和「姓氏」的順序,或者在使用其他名稱時使用。強類型語言的價值在於它會在構建時發現這些錯誤,而不是運行時。
所以,一種可能的解決方案是從字符串中派生類。
public class FirstName : String
{
}
public class LastName : String
{
}
現在,如果您傳遞了錯誤類型的字符串,編譯器會抱怨。 以上是不可能的,因爲字符串是密封的。 此外,「使用」語句不會工作(我認爲),因爲編譯器不會抱怨,當我混合起來。
using LastName = String;
當然,我可以建立包裝字符串然後編寫轉換轉換方法的類,但是這看起來更麻煩而不值得。
請不要在「C#」等前加上標題。這就是標籤的用途。 – 2012-03-26 18:03:39
爲什麼不使用命名參數(在VS2010版本的C#中引入)來避免切換或排序參數問題,而不是僅僅通過更強大的輸入使生活變得困難? http://msdn.microsoft.com/en-us/library/dd264739.aspx – 2012-03-26 18:15:35