当前位置:编程学习 > C#/ASP.NET >>

请问:为什么程序中的变量string不赋初值程序出错!

Console.WriteLine("请你输入一个字符串:");  
                                   string  myString  =  Console.ReadLine();  
                                   char[]  chars  =  myString.ToCharArray();  
                                   string  printString  =  "";//问题在此:为什么printString不初始化为空字符串程序会出错!难道字符串变量在使用前要初始化?  
                                   for(long  i  =  chars.LongLength-1;i>=0;i--)  
                                   {  
                                               string  string1  =  Convert.ToString(chars[i]);  
                                               printString  +=  string1;  
                                   }  
                                   Console.WriteLine("反向输出为:{0}",printString);
--------------------编程问答-------------------- 一定要初始化 --------------------编程问答-------------------- 当然需要初始化 --------------------编程问答-------------------- 如果没有初始化 printString 值为null, 你是不能对null做合并字符串操作的 --------------------编程问答-------------------- 如果出现在printString 的是一个结构体 CLR会自动调用的它的构造函数 这也就是为什么int i;不用初始化 --------------------编程问答-------------------- string str=String.Empty就OK了 --------------------编程问答-------------------- 如果那个变量在函数中,它必须被初始化
如果是类的成员变量的话,就不用初始化
--------------------编程问答-------------------- 你要保证哪里都不出错误,string str=String.Empty就OK了 --------------------编程问答-------------------- 因为编译器可以认为你的for循环条件根本不成立,这样printString就没有值了 --------------------编程问答-------------------- C# 规定变量必须初始化才能使用,否则编译通过不过

string str1;
Console.Write(str1); // error

string str2 = null;
Console.Write(str1); // ok

int n1;
Console.Write(n1); // error

int n2 = 0;
Console.Write(n1); // ok --------------------编程问答-------------------- sorry,

>>>

string str1;
Console.Write(str1); // error

string str2 = null;
Console.Write(str2); // ok

int n1;
Console.Write(n1); // error

int n2 = 0;
Console.Write(n2); // ok --------------------编程问答-------------------- printString在引用时是需要一个值的 不赋值为NULL怎么+你后面的string?? --------------------编程问答-------------------- 因为是引用类型..不是值类型

引用类型可以理解为指针...当指针没成立,就是不知道值哪个方向的时候不就是错的嘛~~
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,