c# - 无法从自定义类转换为字符串
问题描述
这似乎应该是世界上最简单的事情,但我已经离开 C# 一段时间了。我正在尝试开始一个新项目,而我尘土飞扬的旧大脑让我为此感到痛苦。
我创建了一个简单的类,并试图覆盖 ToString() 方法。我发现,在创建控制台应用程序时,编译器将我的对象转换为字符串没有问题,但是当我切换到 Windows 窗体时,编译器停止,并强制我显式调用 .ToString() 我在做什么错误的?
在此先感谢,
大卫
public class TestClass1
{
private Int32 value;
public TestClass1()
{ value = 0;}
public override string ToString()
{ return value.ToString(); }
}
public partial class MainForm : Form
{
public MainForm()
{ InitializeComponent(); }
private void Button1_Click(object sender, EventArgs e)
{
TestClass1 test = new TestClass1();
MessageBox.Show(test.ToString()); // this compiles
MessageBox.Show(test); // this doesn't
// Argument 1: Cannot convert TestClass1 to string
}
}
解决方案
该Console.WriteLine()
方法有一个带有as 参数的重载object
,允许您直接将几乎任何东西传递给它。大概,然后它会为您ToString
调用参数。
但是,所有重载都MessageBox.Show
以 aString
作为消息,因此您不能直接将自己的类传递给方法。
推荐阅读
- flutter - 断言失败:第 1696 行第 12 行:'center!.parent == this':不正确
- django-rest-framework - Resource 中传递的动态字段
- dataweave - dataweave fetch first char from array elements
- android - 手机重启后重新启动应用程序
- unit-testing - 如何打开 7.6.0 版的 cypress runner?
- flutter - 我正在尝试使用 google youtube API 在颤振应用程序中访问我的 youtube 频道的视频。但它给出了以下错误
- random - 在房间中随机放置方块
- node.js - PUT 方法在 Node express 应用程序中仅工作 6 次
- javascript - 在 InDesign 中设置活动页码
- php - PHP 上的 Avro 编码器/解码器 - 如何在没有架构本身的情况下发送编码的二进制数据?