Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中使用gettext复数定义函数?_C#_Type Conversion_Boolean_Gettext - Fatal编程技术网

如何在C#中使用gettext复数定义函数?

如何在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) =>

我必须将一些外部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) => 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
方法