1

如果我测试以下代码:

struct MyStruct
{
    int number;
}

Console.WriteLine("{0}", default(MyStruct))

控制台中的结果将是[some namespace].MyStruct

问题是我怎样才能改变default(MyStruct)其他东西的回报?

4

2 回答 2

1

您无法更改default关键字的行为。它具有值、引用和结构类型的预定义行为。

对于结构,它将返回结构的每个成员,根据它们是值类型还是引用类型,初始化为零或空。

来源

于 2012-09-28T04:55:45.657 回答
0

经过进一步研究,看起来我可以重写 ToString 方法来更改打印结果。值类型的默认 ToString 实现如下:

public override string ToString()
{
    return this.GetType().ToString();
}

我可以覆盖它来打印其他东西。

于 2012-09-28T05:09:16.917 回答