Статические классы должны быть производными от объекта (C #) - PullRequest
17 голосов
/ 27 июня 2011

У меня проблема в C #, состояния вывода:

Error   1   Static class 'WindowsFormsApplication1.Hello2' 
cannot derive from type 'System.Windows.Forms.Form'. Static classes 
must derive from object.

Как я мог это исправить?

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
             Hello2.calculate();
        }
    }



    public class Hello : Form
    {
        public string test { get; set; }

    }


    public static class Hello2 : Form
    {
        public static void calculate()
        {
            Process.Start("test.exe");

        }
    }

Ответы [ 3 ]

38 голосов
/ 27 июня 2011

Это означает, что static классы не могут иметь : BaseClass в объявлении.Они не могут наследовать ни от чего.(Наследование от System.Object подразумевается, если ничего не объявляется.)

В классе static могут быть только static члены.Только члены экземпляра наследуются, поэтому наследование бесполезно для static классов.Все, что вам нужно сделать, это удалить : Form.

4 голосов
/ 27 июня 2011

посмотрите на этот похожий вопрос: Почему я не могу наследовать статические классы?

0 голосов
/ 27 июня 2011

Есть ли основания выводить Hello и Hello2 из формы?Если нет, просто сделайте:

public static class Hello2
{
    ...
}

аналогично для класса Hello

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...