Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
静态类必须派生自对象(C#)_C#_.net_Windows - Fatal编程技术网

静态类必须派生自对象(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

我在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");

        }
    }

这意味着
静态
类不能在声明中包含
:基类
。他们不能继承任何东西。(来自
System.Object
的继承是通过不声明任何内容隐式实现的。)


static
类只能有
static
成员。只有实例成员被继承,因此继承对于
静态类是无用的。您所要做的就是删除
:Form

是否有理由从Form派生Hello和Hello2?如果没有,就做:

public static class Hello2
{
    ...
}

同样地,对于类Hello

为什么要创建一个从Form派生的静态类呢?看看这个类似的问题:@Tim你这么说好像是闻所未闻的。我在这里遇到了几个例子,有人试图通过使用C#.@b1nary.atr0phy时依赖单例来实现这一功能(从设计上讲,这在Java中是可能的),我从来没有说过这是前所未闻的,甚至没有暗示过这一点。我只是问OP他们为什么要这么做。也许最好将基类的实例实例化为派生类的属性/字段,然后从中公开任何功能(您喜欢的)。我陷入了这样一个问题:基本上,我是在声明内部类
static
作为Java编程的习惯,其中,C#中不存在静态和非静态内部类之间的区别。解决方案:只需删除“static”关键字。