繁体   English   中英

C#转换函数命名约定

[英]C# convert functions naming convention

我有一个函数将对象转换为可以为null的int:

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

现在我需要另一个函数,如果无法转换,它将返回0而不是null:

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,如果它可以为null,我使用AsInt。 这与该语言使用'as'关键字相似。 我还使这些方法的'object'扩展方法,它删除了对类型和空值的任何预检查。 我还建议ToInt利用AsInt,这样你就不会在解析逻辑上加倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM