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

ところで; x2 回解析しても意味がありません。が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

クラス名で関数にアクセスしようとしていますが、これは間違っています。あなたはこのようにしなければなりません

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

ここにはいくつか問題があります。

  • checkConvertValuenumを取るコンストラクタが含まれていません(文字列であると仮定して)、私はあなたが呼び出すつもりだったと思いますformula(...)

  • のインスタンスを作成し、そこからメソッドをcheckConvertValue呼び出すformulaか、クラスとメソッドを静的にして呼び出す必要がありcheckConvertValue.formula1ます...

于 2013-01-29T13:00:52.227 に答える
0

オブジェクトcheckConvertValueはクラスですが、メソッドとして使用しています。

メソッドを使用する前に、そのインスタンスを宣言する必要がありますformula1

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