【问题标题】:How to override the function's output .ToString() in c# [duplicate]如何在c#中覆盖函数的输出.ToString() [重复]
【发布时间】:2017-01-10 12:28:58
【问题描述】:

我有一个返回类型为Object 的函数,当函数return NULL 时,我收到object reference not set 错误。 如果我使用.ToString()。那么,当returns null 时,如何将.ToString() 覆盖为return empty??

【问题讨论】:

  • 这里要做的是在尝试调用 ToString() 之前测试 null
  • 重写将无济于事,因为 Null 不是调用重写方法的对象类型
  • 你可以 override 你的 .ToString() ,使用 .IsNullOrEmtpy() 来检查或使用 null 传播只要谷歌其中任何一个,如果你需要进一步的帮助,请告诉我们。

标签: c# .net


【解决方案1】:

那是不可能的,你不能在 null-object 上调用方法,也就是你不能在不存在的东西上调用方法。

你唯一能做的就是检查null

if(theObj == null)
    Console.WriteLine("empty");

或者:

var someName = theObj != null ? theObj.ToString() : "empty";

【讨论】:

  • 或者简单地说:var someName = (theObj ?? "empty").ToString()
  • 是的,确实有很多可能检查 null
【解决方案2】:

在使用ToString()将该对象转换为字符串之前,请检查该对象是否为空。

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2017-02-11
    • 2015-02-25
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    相关资源
    最近更新 更多