null String String上的String.ToString()方法

时间:2013-08-23 14:53:41

标签: c# nullreferenceexception tostring

我有以下代码:

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //Your code goes here
            var obj=(person)Activator.CreateInstance(typeof(person));
            Console.WriteLine(obj);
        }
    }
     public class person
        {
            public int id { get; set; }
            public string name { get; set; }
            public DateTime dob { get; set; }

            public override string ToString()
            {
                return id.ToString() + " " + name + " " + dob.ToString();
            }
        }
}

产生以下输出:

0  1/1/0001 12:00:00 AM

但是,如果将person.ToString()更改为以下内容:

public override string ToString()
{
        return id.ToString() + " " + name.ToString() + " " + dob.ToString();
}

我收到以下错误:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Rextester.person.ToString()

有人可以对此有所了解。

被修改

1 个答案:

答案 0 :(得分:4)

我猜你的代码示例不正确,因为它代表你的问题并且你实际上看到了这种行为:

return id.ToString() + " " + name + " " + dob.ToString(); 

<强>工作原理

return id.ToString() + " " + name.ToString() + " " + dob.ToString();

不起作用

这是因为向字符串添加null 是合法的,但调用null 实例上的方法不是。

看到这个问题: Why is adding null to a string legal?