C#面:string str = null; 与 string str = ““; 有什么区别

string str = null;

仅初始化对象。

表示字符串变量 str 被初始化为 null。null表示变量不引用任何对象。如果尝试对一个为 null 的字符串变量进行操作,比如访问其属性或调用其方法,将会引发 NullReferenceException 异常。

string str = "";

初始化对象并分配空间。

这表示字符串变量 str 被初始化为空字符串。空字符串是一个长度为0的字符串,它不是 null。对一个空字符串进行操作是安全的,不会引发异常。

区别:

  1. 在内存中的表示:null 表示变量不引用任何对象,而空字符串是一个长度为0的字符串对象。
  2. 对象引用:null 表示没有引用任何对象,而空字符串是一个有效的字符串对象。
  3. 安全性:对一个为 null 的字符串变量进行操作会引发 NullReferenceException 异常,而对一个空字符串进行操作是安全的。

需要注意的是,在使用字符串变量之前,最好先进行判空操作,以避免空引用异常的发生。

例如可以使用 if 语句或者 string.IsNullOrEmpty() 方法来检查字符串是否为空或null。

你可能感兴趣的:(c#,C#面试题,c#,.net)