gpt4 book ai didi

C#类自动调用它的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:49 24 4
gpt4 key购买 nike

最近我在浏览一个 C# 程序时无意中发现了其中某个类的一些奇怪行为。我写了一个小程序来概述这种行为:

class Program
{
static void Main()
{
Test inst1 = new Test();

inst1.name0 = "Hello";
inst1.name1 = "World";

Console.WriteLine(inst1.ToString());
Console.WriteLine(inst1);
}
}

class Test
{
public string name0;
public string name1;

public override string ToString()
{
return string.Format("Name0: {0}; Name1: {1}", name0 ?? "(null)", name1 ?? "(null)");
}
}

输出:

Name0: Hello; Name1: World
Name0: Hello; Name1: World

那么为什么 inst1.ToString() 和 inst1 在 WriteLine() 方法中返回相同的值呢?我很困惑。

最佳答案

当传递一个对象时,Console.WriteLine 重载将使用该对象的 ToString 方法。

From the documentation ,

If value is null, only the line terminator is written. Otherwise, the ToString method of value is called to produce its string representation, and the resulting string is written to the standard output stream.

关于C#类自动调用它的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418100/

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