【发布时间】:2013-05-01 18:54:54
【问题描述】:
在 C# 中
假设我有以下内容:
public String whatHappens{ get; set; }
假设属性已经初始化和设置。
然后我在这里打电话
Console.WriteLine(whatHappens);
GET 调用是否返回一个字符串对象和 Console.WriteLine 调用 ToString() 或者 GET 调用是否依次调用字符串类中的 ToString() 方法并返回一个字符串。
这不是学校问题,而是我和我的同事正在争论的问题。
【问题讨论】:
-
属性getter返回对字符串对象的引用,调用接受字符串的Console.WriteLine()的重载,根本不调用
ToString()。 (请注意,编译器会为类生成一个隐藏字符串字段以实现自动字符串属性,例如您指定的那个,它是对从 getter 返回的隐藏字符串字段的引用。) -
你不必
.ToString()string;已经是string。