C# Int32.Parse(Console.ReadLine())直接出入回车运行错误,求高手解释……
主程序usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacestudent{clas...
主程序
using System;
using System.Collections.Generic;
using System.Text;
namespace student
{
class Program
{
static void Main(string[] args)
{
stu stu1 = new stu("和宇鹏", "IT1015", 1011611508);
Console.WriteLine(stu1.show());
stu1.ask();
}
}
}
学生类
using System;
using System.Collections.Generic;
using System.Text;
namespace student
{
class stu
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string Class;
public string Class1
{
get { return Class; }
set { Class = value; }
}
private int ID;
public int ID1
{
get { return ID; }
set { ID = value; }
}
public stu(string n, string c, int i)
{
name = n;
Class = c;
ID = i;
}
public string show()
{
return name +"\t"+Class +"\t"+ID.ToString()+"\n\n";
}
public void ask()
{
int a = 1,b=1 ;
Console.WriteLine("修改姓名,请按1\n修改班级,请按2\n修改学号,请按3\n退出,请按0");
while (a!=0&&b!=0)
{
a = 0;
a = Int32.Parse(Console.ReadLine());
switch (a)
{
case 1: Console.WriteLine("请输入要修改的姓名"); Name = Console.ReadLine(); break;
case 2: Console.WriteLine("请输入要修改的班级"); Class1 = Console.ReadLine(); break;
case 3: Console.WriteLine("请输入要修改的学号"); ID = Convert.ToInt32(Console.ReadLine()); break;
case 0: break;
default: break;
};
if (a != 0)
{
Console.WriteLine("修改之后的信息");
Console.WriteLine(show());
}
else break;
Console.WriteLine("退出,请按0\n继续修改,请按1");
b = Int32.Parse(Console.ReadLine());
Console.WriteLine("修改姓名,请按1\n修改班级,请按2\n修改学号,请按3\n退出,请按0");
}
}
}
}
为什么在给a和b从屏幕读取赋值的时候不能直接打回车,一打回车就运行错误,提示说输入字符串格式不正确,请确保方法参数的格式正确将一个字符串转换为datetime时先分析该字符串以获取日期然后再将每个变量放置到datetime对象中获取此异常的常规帮助。
这里怎么会牵涉到DateTime呢?怎样修改才能让赋值的时候能直接打回车而不运行错误呢?麻烦哪位高手说一下解决方法,不用把修改过的代码贴出来,只需要解决方法就行,谢谢,我用的是vs2008编译的 展开
using System;
using System.Collections.Generic;
using System.Text;
namespace student
{
class Program
{
static void Main(string[] args)
{
stu stu1 = new stu("和宇鹏", "IT1015", 1011611508);
Console.WriteLine(stu1.show());
stu1.ask();
}
}
}
学生类
using System;
using System.Collections.Generic;
using System.Text;
namespace student
{
class stu
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string Class;
public string Class1
{
get { return Class; }
set { Class = value; }
}
private int ID;
public int ID1
{
get { return ID; }
set { ID = value; }
}
public stu(string n, string c, int i)
{
name = n;
Class = c;
ID = i;
}
public string show()
{
return name +"\t"+Class +"\t"+ID.ToString()+"\n\n";
}
public void ask()
{
int a = 1,b=1 ;
Console.WriteLine("修改姓名,请按1\n修改班级,请按2\n修改学号,请按3\n退出,请按0");
while (a!=0&&b!=0)
{
a = 0;
a = Int32.Parse(Console.ReadLine());
switch (a)
{
case 1: Console.WriteLine("请输入要修改的姓名"); Name = Console.ReadLine(); break;
case 2: Console.WriteLine("请输入要修改的班级"); Class1 = Console.ReadLine(); break;
case 3: Console.WriteLine("请输入要修改的学号"); ID = Convert.ToInt32(Console.ReadLine()); break;
case 0: break;
default: break;
};
if (a != 0)
{
Console.WriteLine("修改之后的信息");
Console.WriteLine(show());
}
else break;
Console.WriteLine("退出,请按0\n继续修改,请按1");
b = Int32.Parse(Console.ReadLine());
Console.WriteLine("修改姓名,请按1\n修改班级,请按2\n修改学号,请按3\n退出,请按0");
}
}
}
}
为什么在给a和b从屏幕读取赋值的时候不能直接打回车,一打回车就运行错误,提示说输入字符串格式不正确,请确保方法参数的格式正确将一个字符串转换为datetime时先分析该字符串以获取日期然后再将每个变量放置到datetime对象中获取此异常的常规帮助。
这里怎么会牵涉到DateTime呢?怎样修改才能让赋值的时候能直接打回车而不运行错误呢?麻烦哪位高手说一下解决方法,不用把修改过的代码贴出来,只需要解决方法就行,谢谢,我用的是vs2008编译的 展开
3个回答
2011-04-09
展开全部
System.Int32.Parse(string value);
不能接受空字串或者空白字符串的,你直接回车,就相当于是要调用
System.Int32.Parse("");
所以报错了。
你可以用TryParse来判断是否可以正常转换。
或者用string.IsNullOrEmpty(string value);来判断字串是否为null或空。
跟DateTime无关,那只是一个参考信息,对你的情况并无帮助。
不能接受空字串或者空白字符串的,你直接回车,就相当于是要调用
System.Int32.Parse("");
所以报错了。
你可以用TryParse来判断是否可以正常转换。
或者用string.IsNullOrEmpty(string value);来判断字串是否为null或空。
跟DateTime无关,那只是一个参考信息,对你的情况并无帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询