日期:2014-05-20  浏览次数:20765 次

请问有关string 变量初始化的问题
c#   编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量
但是这段代码:
using   System;

namespace   Wrox.ProCSharp.Basics
{
        class   MyFirstCSharpClass
        {
               
                static   void   Main()
                {
                        string   ttt;
                        ttt   =   Console.ReadLine();
                        Console.WriteLine(ttt);
                        Console.ReadLine();
                        return;
                }
        }
}

其中仅仅声明了string   引用ttt   ,并没有用new初始化string对象
为何也能通过呢??


------解决方案--------------------
ttt = Console.ReadLine();
这不就赋值了么 自动初始化
等价于
string tt;
tt= "hello ";
------解决方案--------------------
sorry!
我是说错了,string类型的默认是null,而不是 " ",只有值类型的才有默认的值,比如int默认为0.

我没有说错的是如果string没有用变量初始化也是有值的,不过值是null.