Visual Studio 2008 - 在基本的 C# 控制台应用上不断收到错误
本文关键字:应用 错误 控制台 2008 Studio Visual | 更新日期: 2023-09-27 17:56:25
我一直在尝试学习c#,但一直遇到问题。从本质上讲,我正在尝试学习如何创建一个执行某些功能并由应用程序调用以执行该功能的类。
我最终遇到的错误(有很多其他人,但我试图"修复"它们)是
is a 'type' but is used like a variable
到目前为止,我整理的代码是;
namespace FirstConsoleApplication
{
class Program
{
public class checkConvertValue
{
public string formula1(string x)
{
Int32 isnumber = 0;
bool canConvert = Int32.TryParse(x, out isnumber);
string returnValue;
if (canConvert == true)
{
int val3 = Int32.Parse(x);
switch (val3)
{
case 50:
returnValue = "yep its 50";
break;
case 51:
returnValue = "hmmm.... its 51... what are you gonna do about that??";
break;
case 52:
returnValue = "lets not get sloppy now...";
break;
default:
returnValue = "nope, its definately something else";
break;
};
}
else
{
returnValue = "Thats not a number";
};
return returnValue;
}
}
static void Main(string[] args)
{
string num;
string result1;
do
{
Console.WriteLine("Guess what the value is, hint... its integer and between 1 and 100");
num = Console.ReadLine();
result1 = checkConvertValue(num);
Console.WriteLine(result1);
} while (result1 != "yep its 50");
Console.ReadLine();
}
}
}
有人可以让我知道我哪里出错了吗?
你大概的意思是:
result1 = new checkConvertValue().formula1(num);
或者如果你把它(formula1
)作为一个static
的方法:
result1 = checkConvertValue.formula1(num);
顺便说一句;解析x
两次是没有意义的;如果TryParse
成功,整数值存储在isnumber
中。
您正在尝试调用类 checkConvertValue,就好像它是一个方法一样。要实际调用该方法,您需要从类 checkConvert 值的实例调用 formula1 方法。试试这个:
num = Console.ReadLine();
checkConvertValue classReference = new checkConvertValue();
result1 = classReference.formula1(num);
Console.WriteLine(result1);
您正在尝试按类名访问函数,这是错误的。你必须这样做
result1 = new checkConvertValue().formula1(num);
这里有几点问题。
-
checkConvertValue
不包含接受 num 的构造函数(假设它是一个字符串),我想你的意思是调用formula(...)
-
您需要创建一个
checkConvertValue
实例,然后从中调用formula
方法,或者将类和方法设为静态并像checkConvertValue.formula1
等一样调用它......
对象checkConvertValue
是一个类,但您将其用作方法。
您需要先声明它的实例,然后才能使用该方法formula1
num = Console.ReadLine();
checkConvertValue chkVal = new checkConvertValue();
result1 = checkConvertValue.formula1(num);
Console.WriteLine(result1);