C# - 更改结构的默认值?

时间:2013-07-05 08:28:15

标签: c# const default point

被问到简单:我可以更改default的{​​{1}}吗?

  • 如果是,怎么样?
  • 如果不是,是否有一种优雅的方式来实现下面的行为

<小时/> structPoint返回PointFx = 0,但我想让它返回y = 0x = -1。的原因:

  • y = -1x = 0在我的申请中是有效值
  • y = 0x = -1在我的申请中是无效的值

当我无法计算有效值时,我想返回一个无效值。我可以定义一个y = -1,但是在计算Points的所有类中都会有一些。

<小时/> 答案:否。

建议的解决方案:

  • conststruct和初始值class,而不是-1使用default()

1 个答案:

答案 0 :(得分:1)

结构不能覆盖无参数的默认构造函数,也不能显式初始化它们的字段。

你可以做的是使用可空点Point?并使用null作为无效值。