2009-10-14 51 views
2

我一直在尋找有一個接受的參數是同一類型包含此方法的類的方法的類。Vb.Net作用域的問題 - 私人領域

Public Class test 
    private _avalue as integer 
    Public Sub CopyFrom(ByVal from as test) 
    _avalue = from._avalue 
    End Sub 
End Class 

當在代碼中使用

a.CopyFrom(b) 

看來,例如「一」具有可視性傳入的實例「B」的私有成員和線

_avalue = from._avalue 

運行而不會錯誤地將專用字段從一個對象實例複製到另一個。

有誰知道這是由設計。我的印象是,私人領域只能由對象的實例訪問。

回答

2

private範圍涉及類型而不是實例。所以是的,這是設計。

test大約有自身的隱私部位的知識,所以它也可以使用這些零部件在同類型的其他實例。

+0

感謝弗雷德裏克,這是有道理的。 – Andrew

2

您正在寫一些類似於複製構造函數的東西。
由於複製方法/函數正在寫入同一個類的內部,它將有權訪問其自己類的任何實例的私有變量。

+0

在拷貝構造函數的C#中的樣本 - http://en.csharp-online.net/Copy_Constructors –