对于作业,我必须使用结构在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值。我会把细节留给你。

09-10 16:13