2012-07-25 67 views
4

我有一個對象轉換成一個功能可空INT:C#轉換函數的命名約定

public int? ToInt(object x) { ... } 

現在我需要,將返回0,而不是空的另一個功能,如果轉換是不可能的:

public int ToIntSomeOtherName(object x) { ... } 

這個其他功能的名字是什麼? 我知道這看起來微不足道,但我會在很多地方使用這些功能,並且一個好的命名約定會是一大優點。

回答

5

我覺得ToInt是你的第二個方法好:

public int ToInt(object x) { ... } 

而且你可以重命名的第一個:

public int? ToIntOrNull(object x) { ... } 
2

如何ToIntOrDefault?

這是IEnumerable接口(FirstOrDefault)使用的約定。

+0

Int32默認爲0,不爲空。如果你想使用「默認」術語,它應該讀取ToNullableIntOrDefault。 – mbx 2012-09-05 12:14:23

0

方法的名稱首先應該是你(和你的公司或團隊)能夠識別和理解的東西。

但是有時這些名字會變得笨拙。我強烈建議使用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) { ... } 
0

也許ToZeroForNull可能是你的方法名。

0

如何DefaultOrValue這將是像String.IsNullOrEmpty

public int DefaultOrValue(object x) 
{ 
    int? intconverted = ToInt(x); 
    return intconverted.HasValue ? intconverted.Value : 0; 
} 
0

相當隨意相當於名字,但是我用ToInt如果它需要一個整數,asInt中,如果它可以爲null。這與語言對'as'關鍵字的使用相似。我也使這些方法的'對象'的擴展方法,它刪除任何預先檢查類型和空值。我還建議ToInt利用AsInt,所以你不要在解析邏輯上加倍減少。