C#报“is a variable but is used like a type”错误如何修复
报错原因
所有编译报错都来自同一个语法错误:你定义multiplied方法时,没有给形参声明数据类型。
C#是强类型语言,方法定义的每个入参必须明确标注类型,原写法int multiplied (first1, second2)里,编译器会把括号里的first1、second2识别为你指定的参数类型,但这两个名字是你之前在主逻辑里定义的int变量,根本不是合法的类型名,自然就会抛出「变量被当作类型使用」「无法将int转换为对应类型」「缺少标识符」这一串错误。
另外原代码还有个逻辑bug:你在读完两个用户输入之后就调用了Console.ReadKey(),程序会卡在这一步等用户按键,按完才会往下走计算乘积、判断奇偶的逻辑,交互顺序不对。
修改方案
- 给
multiplied方法的两个形参都加上int类型声明,形参名可以和外部变量重名,不影响运行 - 把
Console.ReadKey()移动到程序最后一行,避免计算逻辑没跑完就暂停,同时防止控制台运行完直接闪退
修复后的完整可运行代码:
int first1; int second2; Console.WriteLine("type a digit"); first1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("type a second digit"); second2 = Convert.ToInt32(Console.ReadLine()); int result = multiplied(first1, second2); Console.WriteLine("the result is " + result); if (result % 2 == 0) { Console.WriteLine("it is an even number"); } else { Console.WriteLine("it is an odd number"); } Console.ReadKey(); int multiplied(int first1, int second2) { int result = first1 * second2; return result; }
内容的提问来源于stack exchange,提问作者zero lota
相关产品推荐
相关产品推荐

