C#里的Console.Readline()
描述: 请问在这里Console.Readline()起到什么作用?为什么我删掉就会报错?namespaceConsoleApp4{classProgram{staticvoidMain(string[]args){intx=1;inty=2;intz=x+y;Console.WriteLine(z)... 请问在这里Console.Readline()起到什么作用?为什么我删掉就会报错?namespace ConsoleApp4{ class Program { static void Main(string[] args) { int x = 1; int y = 2; int z = x + y; Console.WriteLine(z); Console.WriteLine("输入你的名字"); Console.Write("输入你的姓:"); string myfirstname; myfirstname = Console.ReadLine();//这行删掉会报错 string mylastname; Console.Write("输入你的名:"); mylastname = Console.ReadLine(); Console.WriteLine("hello" + myfirstname + mylastname); Console.ReadLine();展开
你指着 Console.ReadLine(),就会说明这个方法的含义;它表示从控制台接受一行数据
你把string myfirstname;改为string myfirstname="";就不会报错了
因为你使用了myfirstname这个变量,但是你却没给它赋值,所以它就报错:未将对象的引用添加到对象的实例,解决办法就是在使用变量前做空值检查或者给它一个初始值
追问
再请教下为什么我加一行string abc;就只会出现警告而不会出现错误。可是string myfirstname;就会出现错误呢。
追答
错误并不可怕,可怕的是并不知道为什么出错
显然你这个问题很简单,你鼠标指着错误的地方,它会提示你是什么错误,这是visual studio的官方错误提示,如果不懂可以百度搜索,你也可以在错误列表里面看到所有的错误
string myfirstname的意思是声明变量myfirstname为string类型,一个变量不能被声明两次的就是这样;把string去掉就可以了(一个变量可以被多次赋值)
追问
其实我是想问下同样是定义string格式,为什麼string abc不加Console.ReadLine()就不会报错,而string myfirstname不加就会报错,按理说格式是一样的啊。难道说myfirstname这个名称在系统裏有特殊定义吗?谢谢
追答
那你看了出错的地方在哪里吗?编辑时间 2019-01-13 12:16:56
你前面怎么赋值都没事,是不会出问题的
出问题的地方在倒数第二行
代码是一个前后关联的东西,你出错是因为没有对myfirstname赋值,又去读取它的值
所以你需要在前面给它赋值