2012-07-25 47 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,所以你不要在解析逻辑上加倍减少。