我必须在我的 C# 程序中添加一些外部 C 代码,即来自 gettext PO 文件的复数计算:例如
nplurals=2; plural=(n != 1);
或者
nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
要使用这些,我必须定义n和。
并且是简单的整数,不是问题;但是,当我定义以及将其定义为.npluralspluralnnpluralsint pluralbool plural
原因很明显:C 不知道真正的布尔值——在 C 中,所有布尔值都是整数,您可以对它们进行数值和逻辑运算。C# 中的布尔值处理是不同的——你不能像&&整数一样进行逻辑运算,也不能对布尔值进行数值运算。
有没有办法在不改变它们的情况下使用这些功能?