使用在接口中声明和实现的扩展方法

拉姆鲁米·阿菲夫(Lamloumi Afif)

我尝试了解Extension method concept in c#,因此我添加了以下界面:

 public interface IExtension
{
   public static int Multiple(this int a)
   {
       return a * 2;
   }
}

在我的主要方法中

 public static void Main()
   {
       Console.WriteLine("Entrer un numero");
       int a =int.Parse( Console.ReadLine());
       a.Multiple();
       Console.ReadKey();
   }

我收到一个错误,a.Multiple();指示无法识别该方法。

即使我添加了实现该接口的静态类,也遇到了同样的错误。

我该如何解决这个问题?

Xanatos

扩展方法必须位于中static class,不能位于中interface

public static class MyExtension
{
    public static int Multiple(this int a)
    {
        return a * 2;
    }
}

然后您应该打印结果:

Console.WriteLine(a.Multiple());

请注意,您的扩展方法无法更改a(因为int是值类型)的值,因此只能返回新值!

通过添加检查

Console.WriteLine(a.Multiple());
Console.WriteLine(a);

出于好奇,Oracle在Java 8中向接口添加了默认方法https : //docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html它们有点像C#扩展方法,但它们是在内部定义的接口。实现该接口的类型可以覆盖它们,否则它们将“继承”这些默认方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用在接口中声明的方法,但不使用类

来自分类Dev

在扩展接口中声明成员与在实现中声明成员之间有什么区别?

来自分类Dev

在扩展接口中声明成员与在实现中声明成员之间有什么区别?

来自分类Dev

接口中声明的方法的约束

来自分类Dev

接口中声明的方法的约束

来自分类Dev

在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

来自分类Dev

在非通用接口中声明通用方法

来自分类Dev

在Zope接口中声明类方法

来自分类Dev

在接口中实现方法的新组件

来自分类Dev

在接口中声明常量,但在实现中定义

来自分类Dev

如何使用父接口中的相同方法实现多个接口

来自分类Dev

接口和实现方法

来自分类Dev

如何使用<S扩展T> Iterable <S>实现接口方法

来自分类Dev

在C#中使用扩展方法实现接口

来自分类Dev

在C#中使用扩展方法实现接口

来自分类Dev

在接口中声明继承接口的所有方法?

来自分类Dev

如果在实现业务逻辑的接口中未声明无状态Bean方法,该如何调用该方法

来自分类Dev

内联接口实现-在声明时实现接口方法

来自分类Dev

什么是Iterable接口中的forEach和spliterator,以及如何使用链表实现

来自分类Dev

什么是Iterable接口中的forEach和spliterator,以及如何使用链表实现

来自分类Dev

在接口中实现委托

来自分类Dev

接口中会声明C#内联方法吗?

来自分类Dev

具有扩展接口参数的实现方法

来自分类Dev

如何在d.ts文件中声明的接口中使用TypeScript环境声明接口

来自分类Dev

在Java中使用泛型和反射实现接口方法

来自分类Dev

Stream <T>接口中的filter()方法的实现在哪里?

来自分类Dev

是否可以在Kotlin接口中编写equals方法的默认实现?

来自分类Dev

Java-到实现类的接口中的约束方法参数

来自分类Dev

声明接口并使用C ++中的多继承实现接口

Related 相关文章

  1. 1

    使用在接口中声明的方法,但不使用类

  2. 2

    在扩展接口中声明成员与在实现中声明成员之间有什么区别?

  3. 3

    在扩展接口中声明成员与在实现中声明成员之间有什么区别?

  4. 4

    接口中声明的方法的约束

  5. 5

    接口中声明的方法的约束

  6. 6

    在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

  7. 7

    在非通用接口中声明通用方法

  8. 8

    在Zope接口中声明类方法

  9. 9

    在接口中实现方法的新组件

  10. 10

    在接口中声明常量,但在实现中定义

  11. 11

    如何使用父接口中的相同方法实现多个接口

  12. 12

    接口和实现方法

  13. 13

    如何使用<S扩展T> Iterable <S>实现接口方法

  14. 14

    在C#中使用扩展方法实现接口

  15. 15

    在C#中使用扩展方法实现接口

  16. 16

    在接口中声明继承接口的所有方法?

  17. 17

    如果在实现业务逻辑的接口中未声明无状态Bean方法,该如何调用该方法

  18. 18

    内联接口实现-在声明时实现接口方法

  19. 19

    什么是Iterable接口中的forEach和spliterator,以及如何使用链表实现

  20. 20

    什么是Iterable接口中的forEach和spliterator,以及如何使用链表实现

  21. 21

    在接口中实现委托

  22. 22

    接口中会声明C#内联方法吗?

  23. 23

    具有扩展接口参数的实现方法

  24. 24

    如何在d.ts文件中声明的接口中使用TypeScript环境声明接口

  25. 25

    在Java中使用泛型和反射实现接口方法

  26. 26

    Stream <T>接口中的filter()方法的实现在哪里?

  27. 27

    是否可以在Kotlin接口中编写equals方法的默认实现?

  28. 28

    Java-到实现类的接口中的约束方法参数

  29. 29

    声明接口并使用C ++中的多继承实现接口

热门标签

归档