如何在C#中使用gettext复数定义函数?
我必须将一些外部C代码添加到我的C#程序中,即从gettext PO文件进行复数计算: e、 g如何在C#中使用gettext复数定义函数?,c#,type-conversion,boolean,gettext,C#,Type Conversion,Boolean,Gettext,我必须将一些外部C代码添加到我的C#程序中,即从gettext PO文件进行复数计算: e、 g nplurals=2;复数=(n!=1) 或 nplurals=3;复数=n%10==1&&n%100=11 ? 0:n%10>=2&&n%10是的,非常简单。 定义一个模仿C布尔处理的结构: public struct CBool { private int m_value; public static implicit operator bool(CBool cb) =>
nplurals=2;复数=(n!=1)代码>
或
nplurals=3;复数=n%10==1&&n%100=11 ? 0:n%10>=2&&n%10是的,非常简单。
定义一个模仿C布尔处理的结构:
public struct CBool
{
private int m_value;
public static implicit operator bool(CBool cb) => cb.m_value != 0;
public static implicit operator int(CBool cb) => cb.m_value;
public static implicit operator CBool(int val) => new CBool(val);
public static implicit operator CBool(bool val) => new CBool(val);
public CBool(int val = 0) { m_value = val; }
public CBool(bool val) { m_value = val ? 1 : 0; }
}
...
CBool plural;
此结构的行为类似于C“bool”-您可以使用它执行数字和逻辑操作,如mulral=true
或mulral=7
但是,由于它与通常的C#规则相矛盾,并且在性能方面存在疑问,因此它应该仅用于上述特殊情况。对于常见的int/bool转换,应使用通常的Convert
方法