我正在尝试学习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();
}
}
}
有人能让我知道我哪里出错吗?
答案 0 :(得分:1)
你可能意味着:
result1 = new checkConvertValue().formula1(num);
或者如果您使用formula1
方法(static
):
result1 = checkConvertValue.formula1(num);
顺便说一句;解析x
两次没有意义;如果TryParse
成功,则整数值存储在isnumber
。
答案 1 :(得分:1)
您正在尝试将类 checkConvertValue称为方法。 要实际调用该方法,您需要从类 checkConvert 值的实例调用 formula1 方法。 试试这个:
num = Console.ReadLine();
checkConvertValue classReference = new checkConvertValue();
result1 = classReference.formula1(num);
Console.WriteLine(result1);
答案 2 :(得分:0)
这里有一些问题。
checkConvertValue
不包含带num的构造函数(假设它是一个字符串),我想你打算调用formula(...)
您需要创建checkConvertValue
的实例,然后从中调用formula
方法或使类和方法保持静态,并将其称为checkConvertValue.formula1
等...
答案 3 :(得分:0)
对象checkConvertValue
是一个类,但您将它用作方法。
在使用方法formula1
num = Console.ReadLine();
checkConvertValue chkVal = new checkConvertValue();
result1 = checkConvertValue.formula1(num);
Console.WriteLine(result1);
答案 4 :(得分:0)
您正在尝试按类名访问该功能,这是错误的。你必须这样做
result1 = new checkConvertValue().formula1(num);