我已經查閱了一些msdn文章,這些文章討論了幾個月前堆棧溢出時的c#編碼約定和命名指南(C# Coding Conventions和Naming Guidelines)以及similar question。c#爲具有相同數據但不同類型的變量命名約定
我不知道如何處理同一時間範圍內的兩個變量,這些變量在不同類型中包含[概念上]相同的數據。
一個有助於說明問題的例子是一個標識符,它最初作爲一個字符串保存,然後被轉換/解析爲一個整數。
我已經想出了3種可能的行動方案,我確信我錯過了可能的選擇。
COA#1:
int iRecordId;
string sRecordId;
當變量中的一個或兩個前綴類型的縮寫。這違反了MS編碼準則,規定不要用匈牙利類型符號前綴參數名稱。
COA#2:
int recordId;
string recordIdString;
當變量中的一個或兩個明確規定,名稱中的類型。這看起來很快樂,雖然它不使用匈牙利符號,但它似乎違反了之前COA的精神。
COA#3:
int recordIdForDatabase;
string recordIdFromUrl;
其中每個變量是進一步限定通過其中的數據來自,或打算。
建議
我的想法是,我最終想兩個變量,只有類型不同,所以雖然有明確規定沒有前綴類型信息變量的準則,我扶着走向區分使用匈牙利語前綴。由於它與代碼的其餘部分的命名約定形成鮮明對比,似乎它將突出顯示情有可原的情況。這是一個合理的方法嗎?
問題,評論和憤怒的呼聲都歡迎。
是的,我只是重讀我寫的東西。仍然應該保持真實 - 只存儲int或_字符串,而不是兩者。然後根據需要轉換。我會保持int值,因爲ToString()會失敗,但Int32.Parse()很容易失敗。 –