0

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

}

有人可以让我知道我哪里出错了吗?

4

5 回答 5

1

你大概的意思是:

result1 = new checkConvertValue().formula1(num);

或者,如果您将其 ( formula1) 设为static方法:

result1 = checkConvertValue.formula1(num);

顺便提一句; x解析两次没有意义;如果TryParse成功,则整数值存储在isnumber.

于 2013-01-29T13:00:20.387 回答
1

您正在尝试调用checkConvertValue ,就好像它是一种方法一样。要实际调用该方法,您需要从类checkConvert值的实例调用formula1方法。试试这个:

num = Console.ReadLine();
checkConvertValue classReference = new checkConvertValue();
result1 = classReference.formula1(num);
Console.WriteLine(result1);
于 2013-01-29T13:04:07.827 回答
0

这里有几件事是错误的。

  • checkConvertValue不包含采用 num 的构造函数(假设它是一个字符串),我认为您打算调用formula(...)

  • 您需要创建一个实例,checkConvertValue然后formula从中调用方法,或者将类和方法设为静态并像这样调用它checkConvertValue.formula1......

于 2013-01-29T13:00:52.227 回答
0

objectcheckConvertValue是一个类,但您将其用作方法。

您需要先声明它的一个实例,然后才能使用该方法formula1

num = Console.ReadLine();
checkConvertValue chkVal = new checkConvertValue();
result1 = checkConvertValue.formula1(num);
Console.WriteLine(result1);
于 2013-01-29T13:00:56.953 回答
0

您试图通过类名访问该函数,这是错误的。你必须这样做

result1 = new checkConvertValue().formula1(num);
于 2013-01-29T13:02:06.077 回答