c# - 为什么在比较之前为字符串赋值,默认为空

标签 c# asp.net

为什么我总是需要在实际使用它进行比较之前为字符串变量赋值。 例如: 一些输入 - obj

        string temp;
        if (obj== null)
        {
            temp = "OK";
        }
        string final = temp;

我收到编译时错误 - 类似于 - 无法使用未分配的变量“temp”。但是字符串变量的默认值为“null”,我想使用它。那么为什么这是不允许的呢?

最佳答案

when default is null

局部变量的默认值是 null(或其他任何值)。它只是未分配。

您可能正在考虑字符串字段(类级别的变量)。那将是 null :

private string temp;

private void M()
{
   if (obj== null)
   {
       temp = "OK";
   }
   string final = temp;  // default tnull
}

但在方法内部,只需使用您需要的值进行初始化:

string temp = null;

关于c# - 为什么在比较之前为字符串赋值,默认为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12913785/

相关文章:

c# - VSPerf 和 A​​zure 云服务

c# - 验证过程中如何清理 SimpleInjector 创建的实例?

c# - 如何将字符串集合作为 TextReader 传递?

c# - 从 Oracle DB 获取数据时在 C# 中获取 System.OutOfMemoryException

c# - 这是自定义异常的好习惯吗?

javascript - return Json 函数没有更新我的下拉列表

javascript - 数据保存后、重定向到同一页面(或刷新)之前显示“确定”对话框

asp.net - Sitecore:Sitecore.Web.WebUtil.Redirect 相对于 Response.Redirect 有何优势?

c# - 如何将 FileSteam 保存为 PDF 文件

c# - Page_Load 事件中的表单例份验证