gpt4 book ai didi

c# - 字符串属性 GET 返回什么?

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

在 C# 中

假设我有以下内容:

public String whatHappens{ get; set; }

假设属性已经被初始化和设置。

然后我在下面打电话

Console.WriteLine(whatHappens);

GET调用是否返回字符串对象,Console.WriteLine是否调用ToString()或者GET 调用是否依次调用字符串类中的 ToString() 方法并返回一个字符串。

这不是学校问题,而是我和我的同事之间的争论。

最佳答案

在您的示例中,您使用了一个自动属性。自动属性有一个额外的隐藏字段,即支持字段。该字段与属性的类型相同,在您的例子中是一个字符串。

在此属性内,代码不会调用 ToString(),因为支持字段已经是 string 类型。

Console.WriteLine 有很多重载。这些重载之一接受类型为 string 的参数。所以在 Console.WriteLine 中不需要调用 ToString(),因为参数已经是那个类型了。

简而言之:任何地方都不会调用 ToString()

另一方面,如果该属性不是自动属性并且它后面的一个或多个字段属于另一种类型,则需要使用 ToString()< 将它们转换为字符串.

另一方面,如果调用了 Console.WriteLine 的另一个重载,其中参数的类型为 object,则 WriteLine必须在某个时候调用 ToString()

关于c# - 字符串属性 GET 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16324474/

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