Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 检查整数是否=null_C#_If Statement_Null_Integer - Fatal编程技术网

C# 检查整数是否=null

C# 检查整数是否=null,c#,if-statement,null,integer,C#,If Statement,Null,Integer,我想检查我的Listentry是否为null,但我不知道如何检查 注: ID是一个整数 这是我的密码 if(MeineGaeste[i].ID !=null) { i++; } else { MeinGast.ID = i++; test = false; } int不能为空。另一方面,可以使用可为空的int,int?。也就是说,你想要做的检查毫无意义 将ID的类型从int更改为int?,您所做的检查具有意义,编译器不会对此抱怨。因为正常的int类型是一种值类型,它不能

我想检查我的Listentry是否为null,但我不知道如何检查

注: ID是一个整数

这是我的密码

if(MeineGaeste[i].ID !=null)
{
    i++;
}
else
{
    MeinGast.ID = i++;
    test = false;
}

int
不能为空。另一方面,可以使用可为空的int,
int?
。也就是说,你想要做的检查毫无意义


ID
的类型从
int
更改为
int?
,您所做的检查具有意义,编译器不会对此抱怨。

因为正常的
int
类型是一种值类型,它不能为
null

您可以对属性
ID
使用可空类型
int?
,该属性基本上是一个结构,允许
null
或任何
int
值。有关其他文档,请参阅或


如果无法更改
ID
属性的类型,解决方法可能是选择一个整数作为标记值,该值保证不会出现在模型中(例如
Int32.MinValue
,因为大多数生成的ID似乎都是正整数)如果不必这样做,请不要这样做,因为这很可能会导致错误。如果使用该标记值序列化模型,我至少建议引发异常。

如上所述,int不能为null。如果没有设置一个值,那么我认为默认值是零。您可以检查0,如果您认为它正在设置为

否则,如果希望避免可为空的整数,则必须将其转换为字符串,然后执行检查

String.IsNullOrEmpty(ID.ToString());

它返回一个布尔值,因此可以将其粘贴到if语句中

您可以使用这个ID.HasValue,当有值时返回true,如果null,则返回false

整数不能为null。它是否声明为
int
int?
?如果
ID
成员声明为
int
,则比较
ID!=空值
没有意义。你会得到一个编译时警告。我投票结束这个问题,因为它缺少一些重要的细节,比如所讨论变量的数据类型。在
else
条件下,所显示的代码调用无效逻辑也没有帮助(尝试增加
null
值,如果调用该值,假设它编译,则会出错)。换句话说,理解作者的意图是没有意义的。谢谢你们的回答。但是如何使用int呢?在我的程序中。谢谢你的回答,但是我可以使用int吗?在我的节目里?这是我学校项目的一小部分。@不客气。这取决于你想做什么。老实说,我没有得到你想要达到的目标。然而,正如我从你的帖子中推断的那样,你可能要做的第一件事是将ID的类型从
int
更改为
int?
so?私人整数_身份证件公共整数?ID{get{return{uid;}set{{uid=value;}}}这怎么可能?由于ID的类型是可为null的int,因此ID可以为null。谢谢,我知道,我的问题并不完美。。我需要另一个选择。我无法理解你的答案。如果避免使用
int?
(这意味着
ID
int
),则
ID.toString()
永远无法生成空字符串,从而使检查始终为false。在这种情况下,将任何内容转换为字符串有什么帮助?如果
0
是有效值,您仍然无法检测到缺少的值,否则。@jpmc26未分配的ID变量将为零,并将解析为字符串“0”,这是正确的。答案应该是:ID.ToString()=“0”或类似的东西。与直接用
ID==0
检查值相比,这有什么好处?转换为字符串在这里没有意义;没有功能上的理由这样做。这个答案仍然不能解决如何表示或检测缺失值的问题。更糟糕的是,
ID.ToString()
如果
ID
可以为
null
,实际上会出错。我没有说这有什么好处。“答案”是int不能为null,您可以检查零。转换成字符串只是一个建议,可能有用也可能没用,但是对于一个提出这个问题的noob来说,他们可能不知道这个方法。这个答案太棒了!这有助于解决我的问题。非常感谢你!