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

iubenz 2007-07-12 02:40:33
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);
...全文
361 19 打赏 收藏 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
chichenzhe 2008-03-11
  • 打赏
  • 举报
回复
+= 问题出在这里.

会报:未将对象引用设置到对象的事例.

string strA; 并不等于 string strA = null;
这2者完全不同.

ourplan9000 2008-03-05
  • 打赏
  • 举报
回复
可空類型才行
wda3500 2008-03-05
  • 打赏
  • 举报
回复
厉害的能人真多
yz8452 2008-03-05
  • 打赏
  • 举报
回复
up
chensike 2007-08-25
  • 打赏
  • 举报
回复
全局变量可以不用初值,局部变量要
dongwei2345 2007-08-25
  • 打赏
  • 举报
回复
肯定要赋值的啦

因为你是使用 +=
没赋值的是 null
怎么+=
best8625 2007-08-24
  • 打赏
  • 举报
回复
JF
NickWar 2007-08-20
  • 打赏
  • 举报
回复
出错了么?为什么我运行的时候没有出错呢?
新建个txt文档,把以下完整代码粘贴进去,然后保存到d盘,命名为te.cs
然后在Visual Studio 2003 命令提示符下用csc:D:\te.cs
生成可执行文件,连警告都没有,运行正常。
using System;
class Test
{
public static void Main()
{

Console.WriteLine("请你输入一个字符串:");
string myString = Console.ReadLine();
char[] chars = myString.ToCharArray();
string printString = "";
for(long i = chars.LongLength-1;i>=0;i--)
{
string string1 = Convert.ToString(chars[i]);
printString += string1;
}
Console.WriteLine("反向输出为:{0}",printString);
}
}
yan53125 2007-08-14
  • 打赏
  • 举报
回复
局部变量必须有初值
成员变量可以没有
ll124993513 2007-07-22
  • 打赏
  • 举报
回复
string printString = string.empty
试试
hy_huyang 2007-07-21
  • 打赏
  • 举报
回复
变量未初始化
拉达曼迪斯II 2007-07-20
  • 打赏
  • 举报
回复
一般初始化string 时建议使用
string str=string.empty
初始化STRING
cncx69 2007-07-18
  • 打赏
  • 举报
回复
当然,那等于没有分配内存
Avoid 2007-07-17
  • 打赏
  • 举报
回复
不赋值就是如下
string printString = null

一个null对象进行操作当然报错。
hahahjx1 2007-07-13
  • 打赏
  • 举报
回复
这个我也不清楚``
我也出现过这种情况``
所以我选择了所有变量先赋初值
shanminmin 2007-07-13
  • 打赏
  • 举报
回复
字符串在使用前当然需要初始化!你这个应该在编译的时候就会报错告诉你的。
hahahjx1 2007-07-13
  • 打赏
  • 举报
回复
哦``
原来这样``

我明白了``
PennyZheng 2007-07-13
  • 打赏
  • 举报
回复
string printString = null 就可以,
是不是编译器必须给他在内存分配空间呢.
MicroSoftor 2007-07-13
  • 打赏
  • 举报
回复
真正的情况是这样的
类的实例不赋值的话会有默认值,但是变量却不是这样,变量一定要赋值才可以使用

结贴

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧