Sha*_*ank 12 .net c# interface multiple-inheritance
我有一组A类和B类都有一些属性.和另一个有自己特性的C类.
每当我创建一个C类实例时,我想用objClassC访问所有三个类的所有属性.
我怎样才能在C#中实现这一目标?
我面临两个问题: -
Hab*_*bib 29
为什么不在C类中包含A类和B类实例.使用Composition
class C
{
//class C properties
public A objA{get;set;}
public B objeB{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以访问了
C objc = new C();
objc.objA.Property1 = "something";
objc.objB.Property1 = "something from b";
Run Code Online (Sandbox Code Playgroud)
看看文章组成与继承
编辑:
如果我使用接口而不是A类,B(在接口中我们不能包含字段)
好吧,接口不能包含字段,如果定义了一个字段,就会出现编译错误.但是接口可以包含属性,但不能指定访问说明符,因为会考虑接口的所有元素public
.您可以将接口"A"和"B"的属性定义为:
public interface IA
{
int Property1 { get; set; }
}
public interface IB
{
int Property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在类C中实现它们,如:
public class C : IA, IB
{
public int Property1 { get; set; }
public int Property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
稍后您可以将它们用作:
C objC = new C();
objC.Property1 = 0;
objC.Property1 = 0;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4206 次 |
最近记录: |