Статические классы должны выводиться из объекта (С#)
У меня проблема с С#, выходные состояния:
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");
}
}
Ответы
Ответ 1
Это означает, что классы static
не могут иметь : BaseClass
в объявлении. Они ничего не могут наследовать. (Наследование от System.Object
неявно, не объявляя ничего.)
Класс static
может содержать только static
членов. Только экземпляры экземпляров наследуются, поэтому наследование бесполезно для классов static
. Все, что вам нужно сделать, это удалить : Form
.
Ответ 2
Посмотрите на этот похожий вопрос: Почему я не могу наследовать статические классы?
Ответ 3
Есть ли какая-то причина для получения Hello и Hello2 из формы? Если нет, просто выполните:
public static class Hello2
{
...
}
аналогично для класса Hello