我有一個對象轉換成一個功能可空INT:C#轉換函數的命名約定
public int? ToInt(object x) { ... }
現在我需要,將返回0,而不是空的另一個功能,如果轉換是不可能的:
public int ToIntSomeOtherName(object x) { ... }
這個其他功能的名字是什麼? 我知道這看起來微不足道,但我會在很多地方使用這些功能,並且一個好的命名約定會是一大優點。
我有一個對象轉換成一個功能可空INT:C#轉換函數的命名約定
public int? ToInt(object x) { ... }
現在我需要,將返回0,而不是空的另一個功能,如果轉換是不可能的:
public int ToIntSomeOtherName(object x) { ... }
這個其他功能的名字是什麼? 我知道這看起來微不足道,但我會在很多地方使用這些功能,並且一個好的命名約定會是一大優點。
我覺得ToInt
是你的第二個方法好:
public int ToInt(object x) { ... }
而且你可以重命名的第一個:
public int? ToIntOrNull(object x) { ... }
如何ToIntOrDefault?
這是IEnumerable接口(FirstOrDefault)使用的約定。
方法的名稱首先應該是你(和你的公司或團隊)能夠識別和理解的東西。
但是有時這些名字會變得笨拙。我強烈建議使用XML註釋來提供你的方法做什麼適當的文件:
/// <summary>
/// Converts an object to an int.
/// If conversion is not possible, a default int value of 0 is returned.
/// </summary>
/// <param name="x">Object to convert to int.</param>
public int ToInt_NotNull(object x) { ... }
也許ToZeroForNull
可能是你的方法名。
如何DefaultOrValue這將是像String.IsNullOrEmpty
public int DefaultOrValue(object x)
{
int? intconverted = ToInt(x);
return intconverted.HasValue ? intconverted.Value : 0;
}
相當隨意相當於名字,但是我用ToInt如果它需要一個整數,asInt中,如果它可以爲null。這與語言對'as'關鍵字的使用相似。我也使這些方法的'對象'的擴展方法,它刪除任何預先檢查類型和空值。我還建議ToInt利用AsInt,所以你不要在解析邏輯上加倍減少。
Int32默認爲0,不爲空。如果你想使用「默認」術語,它應該讀取ToNullableIntOrDefault。 – mbx 2012-09-05 12:14:23