“成员修饰符'static'必须在成员类型和名称之前”错误C#

时间:2009-11-09 03:55:17

标签: c# static message

我正在构建一个BlackJack游戏,而它的主要类是遇到了问题。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public class blackjack
    {

        static string[] playercards = new string[11];
        static string hitstay = "";
        static int total = 0, count = 1, dealertotal = 0;
        static Random cardshuffler = new Random();
        static Form1 f1 = new Form1();
        Form1.ControlCollection



        static void start()
        {
            dealertotal = cardshuffler.Next(15, 22);
            playercards[0] = deal();
            playercards[1] = deal();

            bj();
        }


        private static void hit()
        {

            count += 1;
            playercards[count] = deal();
            f1.textBox2("you were dealed a(n) " + playercards[count] + ".your new total is " + total + ".");
            if (total.Equals(21))
            {
                f1.textBox2("you got blackjack! the dealer's total was " + dealertotal + ".would you like to play again?");
                playagain();
            }
            else if (total > 21)
            {
                f1.textBox2("you busted, therefore you lost. sorry. the dealer's total was " + dealertotal + ".would you like to play again? y/n");
                playagain();
            }
            else if (total < 21)
            {
                do
                {
                    f1.textBox2("would you like to hit or stay?");
                    hitstay = Console.ReadLine();
                } while (!hitstay.Equals("hit") && !hitstay.Equals("stay"));
                bj();
            }
        }

        private static string deal()
        {
            string Card = "";
            int cards = cardshuffler.Next(1, 14);
            switch (cards)
            {
                case 1: Card = "Two"; total += 2;
                    break;
                case 2: Card = "Three"; total += 3;
                    break;
                case 3: Card = "Four"; total += 4;
                    break;
                case 4: Card = "Five"; total += 5;
                    break;
                case 5: Card = "Six"; total += 6;
                    break;
                case 6: Card = "Seven"; total += 7;
                    break;
                case 7: Card = "Eight"; total += 8;
                    break;
                case 8: Card = "Nine"; total += 9;
                    break;
                case 9: Card = "Ten"; total += 10;
                    break;
                case 10: Card = "Jack"; total += 10;
                    break;
                case 11: Card = "Queen"; total += 10;
                    break;
                case 12: Card = "King"; total += 10;
                    break;
                case 13: Card = "Ace"; total += 11;
                    break;

            }
            return Card;
        }

        static void bj()
        {
            if (hitstay.Equals("hit"))
            {
                hit();
            }
            else if (hitstay.Equals("stay"))
            {
                if (total > dealertotal && total <= 21)
                {
                    Form1.textBox2.show("you won! the dealer busted with " + dealertotal + " as their total"  +  "your total was " + total);
                    playagain();
                }
                else if (total < dealertotal)
                {
                    Form1.textBox2.show("sorry, you lost! the dealer's total was " + dealertotal );
                    playagain();
                }

            }
        }

        private static void playagain()
        {



        }
    }
}

错误发生在第21行第9列。

2 个答案:

答案 0 :(得分:4)

错误实际上在第17行 - 这个标识符已经挂掉了干:

Form1.ControlCollection

您要么声明一个字段,要么不应该存在此代码。此代码稍后导致错误,因为解析器正在查找字段名称以使用您放置的类型,并假定您的static Main方法是随其一起使用的标识符。

答案 1 :(得分:1)

static Form1 f1 = new Form1();
    Form1.ControlCollection // What is this? You forgot to write something there?



    static void start()

编译器认为有一个以“Form1.ControlCollection”开头并继续“static void start()”的声明。