如何在C#中更改默认值([CustomStruct])?

时间:2012-09-28 04:51:33

标签: c#

如果我测试以下代码:

struct MyStruct
{
    int number;
}

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

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

问题是如何将default(MyStruct)的回报更改为其他内容?

2 个答案:

答案 0 :(得分:1)

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

  

对于结构体,它将返回初始化为struct或null的结构的每个成员,具体取决于它们是值还是引用类型。

Source

答案 1 :(得分:0)

经过进一步研究,看起来我可以覆盖ToString方法来改变打印结果。 值类型的默认ToString实现类似于:

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

我可以覆盖它以打印别的东西。