C# 转换函数命名规范

4

我有一个函数,可以将一个对象转换为可空的整数:

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

现在我需要另一个函数,如果无法转换,则返回0而不是null:
public int ToIntSomeOtherName(object x) { ... }

那个函数应该取什么好名字呢? 我知道这似乎微不足道,但我会在许多地方使用这些函数, 一个良好的命名约定会带来很大的优势。

6个回答

5
我认为在你的第二种方法中,使用ToInt会更好:
public int ToInt(object x) { ... }

而且你可以将第一个重命名:

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

2

ToIntOrDefault是什么?

这是IEnumerable接口中使用的一种约定(FirstOrDefault)。


Int32默认为0,而不是null。如果您想使用“default”术语,则应该写成ToNullableIntOrDefault。 - mbx

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

DefaultOrValue怎么样?这将类似于String.IsNullOrEmpty的等效名称。

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

0
也许 ToZeroForNull 可以成为你的方法名。

0

相当随意,但如果需要整数,则使用ToInt,如果可以为空,则使用AsInt。这与语言使用“as”关键字的方式相似。我还将这些方法作为“object”的扩展方法,这样就可以消除任何类型和空值的预检查。我还建议使用AsInt来利用ToInt,这样您就不会在解析逻辑上重复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接