阴阳

阴阳#

[1]:
#r "nuget:ConsoleTables"
#r "nuget:YiJingFramework.PrimitiveTypes"
using ConsoleTables;
using YiJingFramework.PrimitiveTypes;
Installed Packages
  • ConsoleTables, 2.6.1
  • YiJingFramework.PrimitiveTypes, 4.0.1

由于只存在两个可能的值,因此 Yinyang 与先前的五行干支略有不同,内部是使用布尔值来表示的。对外它提供 IsYang 属性取得此值,也提供了相对应的构造方法。除此之外,它不支持加减运算,但是支持布尔类型所具有的 ! 运算符,以及 &|^ 运算。

不过,我们不打算为它实现 operator trueoperator false ,因为它本身并不是一个布尔值。

这里主要显示一下其 ToString 的结果:

[2]:
var table = new ConsoleTable("Yinyang", "G", "C");
table.AddRow("Yinyang.Yin", Yinyang.Yin.ToString("G"), Yinyang.Yin.ToString("C"));
table.AddRow("Yinyang.Yang", Yinyang.Yang.ToString("G"), Yinyang.Yang.ToString("C"));
table.Write(Format.Minimal);
| Yinyang      | G    | C  |
|--------------|------|----|
| Yinyang.Yin  | Yin  | 阴 |
| Yinyang.Yang | Yang | 阳 |