假設我有物件 A,我想將其屬性分配給物件 B,并且通過修改物件 B,我希望物件 A 的參考型別屬性也進行更改。物件不一樣。
Class A
{
public string Link1 { get; set;}
}
Class B
{
public string Link { get; set;}
}
public void ProcessLink(ref B b)
{
b.Link = serviceX.GetLink(); // this should set Obj A.Link value too
}
代碼應該是什么樣子的?以便物件 A 屬性 Link1 將通過呼叫更新
var a = new A(){ Link1 = null};
var b = new B() {Link = a.Link1};
ProcessLink(ref B);
現在 a.Link1 等于 b.Link
uj5u.com熱心網友回復:
你所描述的B是一個代理的A。做到這一點的一種方法是為類B提供對A. 而不是自動屬性,撰寫 getter 和 setter 來B實際操作A. 您可以提供A一種方法來獲取B.
這種模式的一個例子是CancellationTokenSource(類似于A)和CancellationToken(B)。令牌是暴露源的已取消屬性的??代理,但不允許您取消它。
考慮制作B一個A實作的介面是否更有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/381407.html
上一篇:使用全域臨時表的真實場景
下一篇:找不到ISOWeek
