Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 如何将valuetype设置为正整数?_C#_.net_C# 4.0_Value Type_Typeof - Fatal编程技术网

C# 如何将valuetype设置为正整数?

C# 如何将valuetype设置为正整数?,c#,.net,c#-4.0,value-type,typeof,C#,.net,C# 4.0,Value Type,Typeof,这个问题应该是不言自明的。我有一个datagridview,它有一个列,在用户输入时,该列的单元格应该只接受正整数 那么,我如何设置这样的内容: dgv.Columns[i].ValueType = typeof(int > 0); dgv.Columns[i].ValueType = typeof(uint); ? 当然,我可以在cellValueChanged事件中处理单独的验证。但是,由于我已经在DataError事件中自动处理了所有验证(因为我为每个列设

这个问题应该是不言自明的。我有一个datagridview,它有一个列,在用户输入时,该列的单元格应该只接受正整数

那么,我如何设置这样的内容:

            dgv.Columns[i].ValueType = typeof(int > 0);
dgv.Columns[i].ValueType = typeof(uint);
?

当然,我可以在
cellValueChanged
事件中处理单独的验证。但是,由于我已经在
DataError
事件中自动处理了所有验证(因为我为每个列设置了valueType),所以我希望在这里处理我的上述验证

    private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e)
    {
        // not fair..
        e.Cancel = true;
    }
怎么做


更新:由于我听到很多关于
uint
(如其中一个答案所建议的)的负面消息,例如uint不符合CLS,并非所有语言都支持它等等,因此仅用于上述验证目的可以吗?

问题的上半部分应该很容易解决,如下所示:

            dgv.Columns[i].ValueType = typeof(int > 0);
dgv.Columns[i].ValueType = typeof(uint);

下面的部分我一点也不懂。

声明uint类型变量

uint的最小值为0


最大od uint为4294967295

dgv.Columns[i]。ValueType
..?CLS合规性仅在公共类上起作用,而公共类是用另一种语言编写的代码可以使用的类型。很明显,这不适用于私人控制。@HansPassant噢,谢谢。我只用于内部验证,只是设置为valueType..您不理解没关系,对问题不重要。但我听到很多关于uint的负面消息。仅用于验证目的可以吗?请注意uint不是int>0,uint是非负的(包括0)