相关疑难解决方法(0)

C#中的多重继承

由于多重继承是不好的(它使源更复杂),C#不直接提供这样的模式.但有时候拥有这种能力会有所帮助.

例如,我能够使用接口和三个类来实现缺少的多继承模式:

public interface IFirst { void FirstMethod(); }
public interface ISecond { void SecondMethod(); }

public class First:IFirst 
{ 
    public void FirstMethod() { Console.WriteLine("First"); } 
}

public class Second:ISecond 
{ 
    public void SecondMethod() { Console.WriteLine("Second"); } 
}

public class FirstAndSecond: IFirst, ISecond
{
    First first = new First();
    Second second = new Second();
    public void FirstMethod() { first.FirstMethod(); }
    public void SecondMethod() { second.SecondMethod(); }
}
Run Code Online (Sandbox Code Playgroud)

每次我向其中一个接口添加方法时,我都需要更改类FirstAndSecond.

有没有办法将多个现有类注入一个新类,就像在C++中一样?

也许有一种使用某种代码生成的解决方案?

或者它可能看起来像这样(假想的c#语法):

public class FirstAndSecond: IFirst from First, ISecond …
Run Code Online (Sandbox Code Playgroud)

c# interface multiple-inheritance

207
推荐指数
5
解决办法
37万
查看次数

C#中的多重继承问题

我处于这样一种情况,我需要在C#和WPF中使用多重继承.

我正在制作一个控制器,让我们说Control-1来自组合框控制.我为我的控件Control-1类添加了一些依赖属性和方法.我的control-1中的大多数属性和方法(实际上是属性和方法的实现)也可以在另一个名为Control-2的控件中使用,但该控件不应该从组合框控件中派生出来(与Control-的情况一样) 1).

我想在另一个类中分离常见的依赖属性和方法,但是在另一个类中分离它需要我从组合框控件和包含属性和方法的公共类派生我的控件类(control-1).

有没有可以解决我的问题的设计.

注意:问题是关于使用WPF框架的依赖属性的C#,它需要静态成员而不仅仅是C#.

有关

当多重继承不是一个选项时,如何重用代码?

C#中的多重继承

如何在C#中实现类之间的共享行为(没有课程的多重继承)

.NET中的多重继承有哪些好的替代方案?

c# wpf inheritance

5
推荐指数
1
解决办法
2259
查看次数

标签 统计

c# ×2

inheritance ×1

interface ×1

multiple-inheritance ×1

wpf ×1