假设我有2个这样的类:
public class A
{
public string P1{ get; set; }
public string P2{ get; set; }
}
public class B
{
public string P3{ get; set; }
public string P4{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要一个这样的课:
public class C
{
public string P1{ get; set; }
public string P2{ get; set; }
public string P3{ get; set; }
public string P4{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
C类可以使用A类和B类而不是重新声明所有属性吗?
(我需要这个DTO)
不,C#不支持多重继承.它可以使用A或B,也可以不使用两者.
这是可行的,但可能不漂亮:
public class C
Run Code Online (Sandbox Code Playgroud)
{
public A APart { get; set; }
public B BPart { get; set; }
}
您不能,因为多重继承仅适用于 C# 中的接口。
一世:
public class C : { public A; public B; }
Run Code Online (Sandbox Code Playgroud)
二:
public interface IA { string P1, P2; }
public interface IB { string P3, P4; }
public class C : IA, IB { string P1, P2, P3, P4; }
Run Code Online (Sandbox Code Playgroud)
三:
public class A { public string P1, P2; }
public class B : A { public string P3, P4; }
public class C : B {}
Run Code Online (Sandbox Code Playgroud)
如果没有,您可以使用反射动态构建您的类。
建立动态的新C含有的所有公共属性的类A和B。
| 归档时间: |
|
| 查看次数: |
2890 次 |
| 最近记录: |