如果您有两个类,例如以下 -
public class AAA
{
public string PropertyA1 { get; set; }
public SOMECLASS PropertyA2 { get; set; }
}
public class BBB
{
public string PropertyB1 { get; set; }
}
我想将BBB更改为以下内容 -
public class BBB
{
public string PropertyB1 { get; set; }
public AAA PropertyB2 { get; set; }
public (SOMECLASS from AAA) PropertyB3 //How can this be done?
}
我应该如何从AAA"
获得" SOMECLASS构建这两个类的正确方法是什么? 我希望PropertyB3与#34的同一类;来自AAA的#34; SOMECLASS不知道SOMECLASS是什么。
答案 0 :(得分:0)
如果PropertyB3
仅用于阅读,您可以编写类似
public SOMECLASS PropertyB3
{
get { return ProeprtyB2 == null ? null : PropertyB2.ProeprtyA2 }
}
<强>更新强>
public class AAA<TSOMECLASS>
{
public string PropertyA1 { get; set; }
public TSOMECLASS PropertyA2 { get; set; }
}
public class BBB<TSOMECLASS>
{
public string PropertyB1 { get; set; }
public AAA<TSOMECLASS> PropertyB2 { get; set; }
public TSOMECLASS PropertyB3
{
get { return PropertyB2 == null ? null : PropertyB2.PropertyA1; }
set
{
if (PropertyB2 == null) PropertyB2 = new AAA<TSOMECLASS>();
PropertyB2.PropertyA1 = value;
}
}
}
答案 1 :(得分:0)
一种可能的方法是返回 AAA 的 SOMECLASS - &gt; BBB 的 PropertyB2.PropertyA2 属性如下:
public class BBB
{
public string PropertyB1 { get; set; }
public AAA PropertyB2 { get; set; }
public PropertyB3
{
get
{
return PropertyB2.PropertyA2
}
}
}
答案 2 :(得分:0)
你可以这样做:
public class BBB : AAA
{
public string PropertyB1 { get; set; }
//inherit from AAA: public SOMECLASS from AAA) PropertyB3
// hide the other property from AAA
private new string PropertyA1 { get; set; }
}