真心谢谢大家的热心帮助,特别10楼的淳淳教导,呵呵。。 最近才开始学c#,还是个菜鸟,问的问题不好,见笑了。如下是我自己刚才写的代码,感觉容错性不太好。(主要是我还不太熟练try catch。。) 结贴前弱弱的问下,除数为零时应该怎么抛出错误,还有这个a,x,b的赋值应该也要try一下吧。。? static void Main(string[] args) { int a,b,c=0; char x; a = int.Parse(Console.ReadLine()); x = char.Parse(Console.ReadLine()); b = int.Parse(Console.ReadLine()); switch (x) { case '+': c = a + b; break; case '_': c = a - b; break; case '*': c = a * b; break; case '/': if (b != 0) { c = a / b; break; } else {
break; } case '%': if (b != 0) { c = a % b; break; } else { break; } } Console.WriteLine(c); }
.NET有完善的异常机制...你可以自定义异常类型或者利用预定义的异常类型... throw new System.ArgumentOutOfRangeException("参数名", "除数不可为零");
你这个是用系统的预制定的吧? 我想要的就是这个了,不过前面的赋值貌似也有些bug,假如我输入的字符串的不是数字(其它的一些),比如: a = int.Parse(Console.ReadLine()); 就会报错(字符串格式)呢。。应该也能用抛出异常的方式来处理吧?否则,程序直接跳错了。呵呵
我能想到的就是使用Try.Parse() 或者 Regex
void Main()
{
int a=5,b=2;
char c='3';
var result=new DataTable().Compute(string.Format("{0}+{1}-{2}",a,b,c),null);
Console.WriteLine(result);//4}
{
object dt = new DataTable().Compute(string.Format("{0}{2}{1}",obj1,obj2,op), null);
return dt;
}calculator(5, 3, "-");//2
calculator(5, 3, "+");//8
最近才开始学c#,还是个菜鸟,问的问题不好,见笑了。如下是我自己刚才写的代码,感觉容错性不太好。(主要是我还不太熟练try catch。。)
结贴前弱弱的问下,除数为零时应该怎么抛出错误,还有这个a,x,b的赋值应该也要try一下吧。。?
static void Main(string[] args)
{
int a,b,c=0;
char x;
a = int.Parse(Console.ReadLine());
x = char.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
switch (x)
{
case '+': c = a + b; break;
case '_': c = a - b; break;
case '*': c = a * b; break;
case '/':
if (b != 0)
{
c = a / b; break;
}
else
{
break;
}
case '%':
if (b != 0)
{
c = a % b; break;
}
else
{
break;
}
}
Console.WriteLine(c);
}
throw new System.ArgumentOutOfRangeException("参数名", "除数不可为零");
你这个是用系统的预制定的吧?
我想要的就是这个了,不过前面的赋值貌似也有些bug,假如我输入的字符串的不是数字(其它的一些),比如:
a = int.Parse(Console.ReadLine());
就会报错(字符串格式)呢。。应该也能用抛出异常的方式来处理吧?否则,程序直接跳错了。呵呵