c# - 如何在没有接口(interface)的情况下模拟多重继承?

标签 c# design-patterns coding-style

如何在不使用接口(interface)的情况下在 C# 中模拟多重继承。我确实相信,接口(interface)能力不适用于此任务。我正在寻找更多面向“设计模式”的方式。

最佳答案

正如 Marcus 所说,使用接口(interface) + 扩展方法来制作类似 mixin 的东西可能是你目前最好的选择。

另见:Create Mixins with Interfaces and Extension Methods by Bill Wagner 示例:

using System;

public interface ISwimmer{
}

public interface IMammal{
}

class Dolphin: ISwimmer, IMammal{
        public static void Main(){
        test();
                }
            public static void test(){
            var Cassie = new Dolphin();
                Cassie.swim();
            Cassie.giveLiveBirth();
                }
}

public static class Swimmer{
            public static void swim(this ISwimmer a){
            Console.WriteLine("splashy,splashy");
                }
}

public static class Mammal{
            public static void giveLiveBirth(this IMammal a){

        Console.WriteLine("Not an easy Job");
            }

}

打印 泼辣的,泼辣的 不是一件容易的事

关于c# - 如何在没有接口(interface)的情况下模拟多重继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849097/

相关文章:

c# - 图表X轴移动

c# - Visual Studio (C#) 'Hot code replace'

c# - 类型为PropertyComparisonValidatorAttribute的验证属性不能用于验证值

ruby - 我应该为轻量级 IDE 使用什么设计模式?

java - 带有过滤器的观察者模式,在什么级别进行过滤?

design-patterns - 将依赖项注入(inject)单例类的一种不错的方法是什么?

c# - 在 WPF UserControl 上应用样式的问题

java - 由方法生成的数组

c# - HtmlWindow.Error 事件不会因 Javascript 错误而触发

java - C# 合约与 NotNull/在 Java 中创建自己的合约