在C#中,可以通过任何方式完成以下操作:
class A
{
public int X { get; set; }
}
class B
{
public /* ? */ OtherX;
}
var a = new A();
var b = new B();
b.OtherX = //?a.X?;
b.OtherX = 1; //sets a.X to 1
int otherX = b.OtherX //gets value of a.X
无需采取此操作:
class B
{
public Func<int> GetOtherX;
public Action<int> SetOtherX;
}
var a = new A();
var b = new B();
b.GetOtherX = () => a.X;
b.SetOtherX = (x) => a.X = x;
?
不,您不能完全按照您描述的方式执行此操作,因为没有ref int
类型,但是可以在其周围放置包装器,这样就可以使两个变量都指向保存您的值的同一对象。
public class Wrapper<T>
{
public T Value {get; set;}
}
public class A
{
public Wrapper<int> X {get; set;}
public A()
{
X = new Wrapper<int>();
}
}
public class B
{
public Wrapper<int> OtherX {get; set;}
}
var a = new A();
var b = new B();
b.OtherX = a.X;
b.OtherX.Value = 1; //sets a.X to 1
int otherX = b.OtherX.Value //gets value of a.X
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句