Code Bye

能否用struct来实现一个接口? 本人遇到一个编译错误

    interface a
    {
        void f();
    }
    struct b : a
    {
        override void f() { }
    }

上面的代码编译不过,告诉本人

 "ConsoleApplication2.b.f()": virtual or abstract members cannot be private

但是假如本人把struct改成

    struct b : a
    {
        public override void f() { }
    }

那么编译错误就变成了:

error CS0115: "ConsoleApplication2.b.f()": no suitable method found to override
error CS0549: "ConsoleApplication2.b.f()" is a new virtual member in sealed class "ConsoleApplication2.b"

是本人覆盖接口的写法不对吗?

解决方案

20

no suitable method found to override
估计这个原因,lz 平常接触中文单词儿,不关心英文单词儿,所以第一个提示暂时蒙对了,而这个英文提示蒙不出来啦。

20

b本人就是基类了,你还要覆盖谁?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明能否用struct来实现一个接口? 本人遇到一个编译错误