对于作业,我必须使用结构在C#中编写Tribool类。只有三个可能的tribool,True,False和Unknown,我已将它们声明为静态只读。像这样:
public static readonly Tribool True, False, Unknown;
我需要默认的构造函数来提供False Tribool,但是我不确定如何执行此操作。我试过
Tribool() { this = False; }
和Tribool() { False; }
,但我不断收到“结构不能包含显式的无参数构造函数”错误。该分配指定Tribool的默认构造函数应提供False Tribool。否则,用户将无法创建任何其他Tribools。我现在真的不知道该怎么办。任何建议将不胜感激。谢谢。
最佳答案
错误告诉您,您绝对不能为结构拥有无参数实例构造函数。请参阅C#3.0语言规范的§11.3.8:
与类不同,不允许结构声明无参数实例构造函数。
该语言为您提供了一种称为默认构造函数的语言。此构造函数返回将字段设置为其默认值的结构的值。
现在,您可以做的是让struct的默认值代表False
值。我会把细节留给你。