gpt4 book ai didi

c# - 测试 NULL 并在需要时返回一个字符串 - 优点/缺点是什么

转载 作者:行者123 更新时间:2023-11-30 19:20:37 24 4
gpt4 key购买 nike

我有一个实现了 ToString 的简单类,我对其中的内容很满意。我试图通过查看各种选项是否有任何优点/缺点来决定什么是(最)正确的方法。

下面的例子:

  • 类别:宇航员
  • Astronaut 类型的变量:person

我只是在这里滚雪球的选项:

  1. string result = person == null ? “无名宇航员”:person.ToString();
  2. string result = person.ToString() ?? “无名宇航员”;
  3. string result = (person ?? "Unknown Astronaut").ToString();
  4. string result = person ?? (对象)“无名宇航员”;

我的看法是

  1. 非常冗长,我不需要那么冗长。
  2. 比 1 好多了,但是 ToString 感觉很丑,而且担心 ToString 代码中的异常。
  3. 这似乎很受欢迎(herehere),但我不确定它是否有效。编译器不会提示 stringAstronaut 类型不是同一类型,因此不能在合并中使用。
  4. 这是我现在最满意的一个,但它意味着一个框 & ToString 应该 person 为 null。

总结:

  • 以上任何一项的优点/缺点是什么?
  • 您能想到什么选择?

最佳答案

我更喜欢扩展方法:

public static string SafeToString(this Object obj)
{
return obj.SafeToString(string.Empty);
}

public static string SafeToString(this Object obj, string defaultString)
{
return obj == null ? defaultString : obj.ToString();
}

所以对于你的问题:

string result = person.SafeToString("Unknown Astronaut");

关于c# - 测试 NULL 并在需要时返回一个字符串 - 优点/缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com