【问题标题】:Why is it possible to specify an interface method's implementation in C#? [closed]为什么可以在 C# 中指定接口方法的实现? [关闭]
【发布时间】:2012-02-10 22:17:10
【问题描述】:

来自 Java 背景,我知道接口的方法不能包含接口内的代码,如下所述(取自 here):

接口中的方法声明后跟分号, 但没有大括号,因为接口不提供实现 对于其中声明的方法。

这是否也适用于 C#?由于我在 Visual Studio 中构建了一个接口来测试它,并且在接口方法的主体中指定代码后,编译器并没有阻止我这样做。

【问题讨论】:

  • 接口不能指定实现。发布您的示例代码。
  • 谢谢 Chris,无需发布代码,因为我只需要确认。
  • 为什么不直接编译一下?

标签: c# java .net oop interface


【解决方案1】:

接口成员不能有定义。此规则适用于 C#、java 和所有面向对象的语言

【讨论】:

    【解决方案2】:

    您在开始编写代码时是否使用了正确的关键字?!比如:

        interface IExampleInterface
    {
    
    string ThisMethodReturnsString(string arg);
    
    }
    

    【讨论】:

      【解决方案3】:

      接口方法是抽象的,不能包含方法体;他们甚至没有默认实现。

      【讨论】:

        【解决方案4】:

        接口不能在 C# 中实现

        如果你创建如下界面

         interface IInterface
            {
                void MyMethod()
                {
        
                }
            }
        

        你会得到编译错误interface members cannot have a definition

        【讨论】:

          【解决方案5】:

          不。接口只能概述 c# 中的方法和属性。不允许方法体或实现。粘贴一些代码可能会更仔细地查看问题。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-23
          • 2013-01-20
          • 2010-11-03
          • 2011-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多