微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么类型“ int”从不等于“ null”?

如何解决为什么类型“ int”从不等于“ null”?

|
int n == 0;

if (n == null)    
{  
    Console.WriteLine(\"......\");  
}
表达式(
n == null
)的结果是否总是
false
是对的,因为 a
int
类型的值永远不会等于
int?
类型的
null
(请参阅以下警告)   警告CS0472表达式的结果始终为'false \',因为类型''int \'的值永远不会等于类型'\ int?\'的\'null \'     

解决方法

        如果希望整数变量允许空值,则将其声明为可空类型:
int? n = 0;
请注意int之后的
?
,这意味着type可以具有值
null
。 .NET Framework v2.0引入了可空类型。     ,        在C#中,不允许使用未初始化的变量。 所以
int i;
Console.Writeline(i);
导致编译错误。 您可以使用new初始化int,例如:
int anInt = new int();
这将导致int的默认值为0。如果您希望拥有泛型
int
,则可以使用以下语法使int为空
int? nullableInt = null;
    ,        因为
int
是值类型而不是引用类型。 C#语言规范不允许ѭ3包含空值。尝试编译以下语句:
int x = null ;
看看你得到什么。 您会收到编译器警告,因为它是毫无意义的测试,并且编译器知道该警告。     ,        根据定义,.NET中的\“值类型\”(如int,double和bool)不能为null-它们始终分配有实际值。查看有关值类型与引用类型的良好介绍。     ,        NULL的用法通常适用于指针和引用。分配给整数的值0不为null。但是,如果您可以将指针分配给整数并将其分配为NULL,则该语句有效。 总结=>
 /*Use the keyword \'null\' while assigning it to pointers and references. Use 0 for integers.*/
    ,        简单地说,一个int是一个非常基本的项目。它既小又简单,因此可以快速处理。它直接作为值处理,而不是沿对象/指针模型处理。因此,它没有合法的“ NULL”值。它只是包含它包含的内容。 0表示0。与指针不同,指针为0将为NULL。存储0的对象仍然具有非零的指针。 如果有机会,花一些时间做一些老式的C或汇编工作,它将变得更加清晰。     ,        否,因为
int
是值类型。
int
是a19ѭ类型,例如
Date
double
等。因此无法分配there4ѭ值。     ,        
 public static int? n { get; set; } = null;
要么
 public static Nullable<int> n { get; set; }
要么
 public static int? n = null;
要么
 public static int? n
要不就
 public static int? n { get; set; } 


    static void Main(string[] args)
    {


    Console.WriteLine(n == null);

     //you also can check using 
     Console.WriteLine(n.HasValue);

        Console.ReadKey();
    }
null关键字是一种表示空引用的文字,它不引用任何对象。 在编程中,可为空的类型是某些编程语言的类型系统的功能,它允许将值设置为特殊值NULL,而不是数据类型的常见可能值。 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/null https://zh.wikipedia.org/wiki/空     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?