C# 如何将valuetype设置为正整数?
这个问题应该是不言自明的。我有一个datagridview,它有一个列,在用户输入时,该列的单元格应该只接受正整数 那么,我如何设置这样的内容: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事件中自动处理了所有验证(因为我为每个列设
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)