继续在基本的c#控制台应用程序上获得错误

时间:2013-01-29 12:55:21

标签: c# visual-studio-2008

我正在尝试学习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();
            }
        }

}
有人能让我知道我哪里出错吗?

5 个答案:

答案 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);