Mixins和.net

mar*_*raz 7 c# mixins

什么,究竟mixins?
有什么技术可以在c#中实现吗?

dtb*_*dtb 6

mixin是一组类成员,可以"混合"到一个类中,而不会出现多重继承问题.

C#本身没有mixins,但为类似的目标提供了扩展方法.

  • @NoProblemBabe:例如,Ruby提供了`Enumerable` mixin,它可以混合到可枚举的类中,以使用过滤,映射和排序方法扩展类.C#/ .NET具有静态`Enumerable`类,它提供扩展方法,用于过滤,映射和排序可枚举的类("LINQ"). (2认同)

Ste*_*app 5

在codeplex.com上查看重新混音.它是一个将mixins引入.NET的开源库

在那里,您将有一个关于如何使用.NET实现mixins的分步指南


小智 4

我不是专家,但这就是我发现的。

  1. C# 3.0 中的 Mixins
  2. 使用 C# 扩展方法实现 Mixins

来自 MSDN 博客:

C# 中的混入

有人认为即将推出的 C# 3.0 中的扩展方法是一种 Mixins,因为您可以在这些方法中放入功能并任意将其标记到您想要的任何类上。在 C# 2.0 规范第 20.1.3 节中,明确指出泛型类的基类必须是构造类类型,因此排除了在 C# 中使用上述方法。我不太清楚为什么我们选择明确禁止抽象子类。由于 C# 不支持多重继承,IMO 它应该支持 Mixin 风格的编码。