静态类必须派生自对象(C#)
我在C#中遇到问题,输出状态为:静态类必须派生自对象(C#),c#,.net,windows,C#,.net,Windows,我在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 Form
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");
}
}
这意味着
静态
类不能在声明中包含:基类
。他们不能继承任何东西。(来自System.Object
的继承是通过不声明任何内容隐式实现的。)
static
类只能有static
成员。只有实例成员被继承,因此继承对于静态类是无用的。您所要做的就是删除:Form
是否有理由从Form派生Hello和Hello2?如果没有,就做:
public static class Hello2
{
...
}
同样地,对于类Hello为什么要创建一个从Form派生的静态类呢?看看这个类似的问题:@Tim你这么说好像是闻所未闻的。我在这里遇到了几个例子,有人试图通过使用C#.@b1nary.atr0phy时依赖单例来实现这一功能(从设计上讲,这在Java中是可能的),我从来没有说过这是前所未闻的,甚至没有暗示过这一点。我只是问OP他们为什么要这么做。也许最好将基类的实例实例化为派生类的属性/字段,然后从中公开任何功能(您喜欢的)。我陷入了这样一个问题:基本上,我是在声明内部类static
作为Java编程的习惯,其中,C#中不存在静态和非静态内部类之间的区别。解决方案:只需删除“static”关键字。