好的,我正在使用看起来像这样的代码,
class A
{
public bool ProprertyDummy
{
get;
set;
}
}
class B
{
void method()
{
A obj1 = new A();
//Set and get obj1.ProprertyDummy
//Share the PropertyDummy with method of class C
}
}
class C
{
void method()
{
A obj2 = new A();
//Set and get obj2.ProprertyDummy
//Share the PropertyDummy with method of class B
}
}
class D
{
void method()
{
A obj3 = new A();
//Set and get obj3.ProprertyDummy
//Should not affect the property PropertyDummy shared by methods of class B and C
}
}
现在我要做的是在类B和C的方法之间共享类A的属性,即PropertyDummy,但不是D。不定义来自不同类的方法将执行的顺序,甚至可能来自一个其他类方法的类方法。
注意:我只想在B和C中共享属性PropertyDummy而不是A类的其他成员。
任何人都可以建议某种方式来实现我想要做的事情。任何帮助表示赞赏。
例如,现在让我们考虑一个具有属性Text
的类Visibility
。现在,包含TextNumbers
(不是继承)对象的两个不同的类TextAlphabets
和Text
想要共享属性,以便1中的更改将反映在其他属性中。但是没有明确的使用顺序。
现在,其他类TextSymbols
也有Text
的对象,但不共享该属性。
答案 0 :(得分:1)
为B,C,D类创建构造函数并将它们注入类对象
public interface IA
{
bool PropertyDummy { get; set; }
}
public class A : IA
{
public bool ProprertyDummy { get; set; }
}
public class B {
private IA _ia;
public B(IA ia) { _ia = ia; }
void method()
{
IA obj1 = _ia;
}
}
public class C {
private IA _ia;
public C(IA ia) { _ia = ia; }
void method()
{
IA obj1 = _ia;
}
}
public class D {
private IA _ia;
public D(IA ia) { _ia = ia; }
void method()
{
IA obj1 = _ia;
}
}
然后具体使用
var aObject1 = new A();
var aObject2 = new A();
var bObject = new B(aObject1);
var cObject = new C(aObject1);
var dObject = new D(aObject2);
然后向B和C实例注入相同的A类对象。另一个A类对象注入到D类对象中。这种方式可能只是解决方案
答案 1 :(得分:-2)
因为ob1,obj2和obj3是A类的3个不同实例,所以该属性不会以任何方式相互影响,我想