C# 无法从自定义类转换为字符串

C# 无法从自定义类转换为字符串,c#,overriding,tostring,C#,Overriding,Tostring,这似乎是世界上最简单的事情,但我已经离开C一段时间了。我正试图开始一个新的项目,而我那满是灰尘的旧脑袋让我为此感到痛苦 我创建了一个简单的类,并试图重写ToString方法。我发现,在创建控制台应用程序时,编译器将我的对象转换为字符串没有问题,但当我切换到Windows窗体时,编译器会犹豫,并强制我显式调用.ToString,我做错了什么 提前感谢,, 大卫 公共类TestClass1 { 私有Int32值; 公共测试类别1 {value=0;} 公共重写字符串ToString {返回值.ToS

这似乎是世界上最简单的事情,但我已经离开C一段时间了。我正试图开始一个新的项目,而我那满是灰尘的旧脑袋让我为此感到痛苦

我创建了一个简单的类,并试图重写ToString方法。我发现,在创建控制台应用程序时,编译器将我的对象转换为字符串没有问题,但当我切换到Windows窗体时,编译器会犹豫,并强制我显式调用.ToString,我做错了什么

提前感谢,, 大卫

公共类TestClass1 { 私有Int32值; 公共测试类别1 {value=0;} 公共重写字符串ToString {返回值.ToString;} } 公共部分类主窗体:窗体 { 公共主窗体 {InitializeComponent;} 私有无效按钮1\u单击对象发送者,事件参数e { TestClass1 test=新的TestClass1; MessageBox.Showtest.ToString;//编译 MessageBox.Showtest;//这不是 //参数1:无法将TestClass1转换为字符串 } } Console.WriteLine方法具有一个将对象作为参数的函数,允许您直接向其中传递几乎任何内容。据推测,它随后会为您调用参数上的ToString

但是,以字符串作为消息,因此您不能直接将自己的类传递给该方法。

Console.WriteLine方法具有一个以对象为参数的函数,允许您直接将几乎任何内容传递给它。据推测,它随后会为您调用参数上的ToString


但是,以字符串作为消息,因此不能直接将自己的类传递到方法中。

有趣。我假设系统会调用我的ToString方法并将结果传递到MessageBox.Show。不管怎样,谢谢你的回复。很有趣。我假设系统会调用我的ToString方法并将结果传递到MessageBox.Show。无论如何,谢谢你的回复。