ли действительным и законным и вниз отлитый в следующем случае:C# вниз литье вопрос
public interface IA {
string Property1 {get;}
}
public class B {
public string Name {get;set;}
}
// class A doesn't have it's own fields, all IA methods/properties are implemented through B methods
public class A:B,IA
{
public string Property1
{
get {return this.Name}
}
}
.....
B b = new B();
A a = (A)b; // will it work ?
Или лучше использовать состав/агрегации?
public class A :IA
{
private B b;
....
public string Property1 {get {return b.Name;} }
public A(B b) {this.b = b}
}
....
B b= new B();
A a = new A(b);
Я интерпретировал код как неудачный, потому что B не является A, поэтому отливка невозможна в первом случае. Я на неправильном конце палки? – 2010-12-15 18:25:53
@ Тим: Совсем нет. Это то же самое, что я сказал, просто с разными словами. :) – cdhowie 2010-12-15 18:29:50