我试图使用http://www.boost.org/doc/libs/1_41_0/doc/html/tribool.html作为参考来实现Tribool类型。C#中的Tribool实现#
我正在使用一个结构,因为它是一个原始类型,不应该是可扩展的。我知道Tribool有三种类型--- True,False和Unknown,默认的构造函数应该提供一个False Tribool。我的问题是,我将True,False和Unknown设置为什么数据类型?现在我有:
struct Tribool
{
//True, False, and Unknown public constants
public static readonly Tribool TRUE, FALSE, UNKNOWN;
//Constructors
public Tribool()
{
Tribool = FALSE; //use ValueType instead?
}
但我不确定这是否正确,因为它看起来像我只是将Tribool设置为另一个Tribool。我应该使用ValueType吗?当我在VS中输入时弹出,这听起来很合理,但我无法从Google上找到很多关于它的信息。
此外,Tribool需要能够使用常规布尔,这意味着“真”和“假”需要超载。这是否需要操作员超载?或者它应该只是一个返回布尔值的方法?
在此先感谢!
编辑:对不起,我应该提到这是一个任务。所以我不能使用bools,尽管你们许多人已经指出了它更实用。