有没有类合龙的功能

有没有类合并的功能
有好几个类,实现不同的功能。
但是希望前台在调用的时候,只通过一个类来调用。不知道能不能这样实现。

比如类A  有功能 getId ,类B 有功能getName
能不能另有一类,实现把类A 和类B 合并成类C(并不是把A和B的代码加入C)

前台调用的时候,只要使用类C就可以。

比如  public C c_s = new C();
          string id;
   public string setid(){
         id = c.getId()
}

------解决思路----------------------
写个父类, 在子类中 重载父类中的getId与getName 方法。
------解决思路----------------------
引用:
如果这样,当增加功能,父类也要改变吧。

有没有 不改变的方法。

增加功能  可以直接在子类中扩展的
------解决思路----------------------
重载方法不行么?有没有类合龙的功能
------解决思路----------------------
不就是外观吗……
public class A
{
      public void DoA()  ;
}
public class B
{
      public void DoB()  ;
}

public class Total
{
      public A A{get;private set;}
      public B B{get;private set;}
      public Total(A a,B b)
      {this.A = a;this.B=b;
      }
}

------解决思路----------------------
不知道你是否需要C中含有A和B的属性或方法。如果想含有,可以将C设置成接口。在A和B类中去实现。如果不需要含有,只要调C,A和B的方法都是独立的。可以创建个C类,让A和B都继承C类。这样直接调用C类,A和B都可以用C来表示。
------解决思路----------------------
如果函数是以C为参数的话,只要在函数体内判断C当前是A类还是B类,进行类型转化就可以使用实际传入的A或B类了
------解决思路----------------------
继承....
------解决思路----------------------
6楼不是都给你代码了
直接把类A和类B放到类C里定义一遍不就得了
------解决思路----------------------
你可以定义一个接口或者是抽象类,名字为C,并在C中声明A和B的方法,不用写具体实现的内容。然后A和B都继承C,在A和B各自的类里来实现它,如果不需要实现的,方法体里可以不填内容。最后在前台实例化C,如C c = new B();实例化的是什么对象,那么c就调用哪个类的方法。
------解决思路----------------------
纠正一下,不是实例化C。是实例化A和B。C不能实例化。
------解决思路----------------------
用c来继承AB啊,然后将增加的功能写在c中就好了
------解决思路----------------------
C# 不支持多重继承(C++支持)
所以你可以用接口来实现你的需求(一个接口可从一个或多个基接口继承。)
使用接口的好处在于:你可以与实现了相同接口的类直接交换数据,而不必去管那些类的具体实现
当接口发生了变化(比如新增了一个功能),编译器会提醒你哪些类需要进行修改(实现新增的接口方法)
------解决思路----------------------
可以用 partial  关键字
------解决思路----------------------
6楼不是给代码了么


public class A
{
      public void DoA()  ;
}
public class B
{
      public void DoB()  ;
}
 
public class Total
{
      A a = new A();
      B b = new B();
      
      public void DoA(){a.DoA();}
      public void DoB(){b.DoB();}
}