我有一个对象转换成一个功能可空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