我有一个函数,可以将一个对象转换为可空的整数:
public int? ToInt(object x) { ... }
现在我需要另一个函数,如果无法转换,则返回0而不是null:
public int ToIntSomeOtherName(object x) { ... }
那个函数应该取什么好名字呢? 我知道这似乎微不足道,但我会在许多地方使用这些函数, 一个良好的命名约定会带来很大的优势。
我有一个函数,可以将一个对象转换为可空的整数:
public int? ToInt(object x) { ... }
public int ToIntSomeOtherName(object x) { ... }
那个函数应该取什么好名字呢? 我知道这似乎微不足道,但我会在许多地方使用这些函数, 一个良好的命名约定会带来很大的优势。
ToInt
会更好:public int ToInt(object x) { ... }
而且你可以将第一个重命名:
public int? ToIntOrNull(object x) { ... }
ToIntOrDefault是什么?
这是IEnumerable接口中使用的一种约定(FirstOrDefault)。
/// <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) { ... }
DefaultOrValue怎么样?这将类似于String.IsNullOrEmpty的等效名称。
public int DefaultOrValue(object x)
{
int? intconverted = ToInt(x);
return intconverted.HasValue ? intconverted.Value : 0;
}
ToZeroForNull
可以成为你的方法名。相当随意,但如果需要整数,则使用ToInt,如果可以为空,则使用AsInt。这与语言使用“as”关键字的方式相似。我还将这些方法作为“object”的扩展方法,这样就可以消除任何类型和空值的预检查。我还建议使用AsInt来利用ToInt,这样您就不会在解析逻辑上重复。