请问:为什么程序中的变量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#