[英]Properties in nested classes in VB.NET
我一直遇到錯誤“在沒有顯式類實例的情況下,無法從共享方法或共享成員初始化器中引用類的實例成員”。 我正在開發VB.NET MVC應用程序。 我有一個模型,該模型具有包含在頂級類中的頂級安全屬性,該屬性應該可供該類中的類使用。 我的屬性始終遵循以下結構:
Private _SecurityVar = Nothing
Public Shared Property SecurityVar
Get
If _SecurityVar = Nothing Then
_SecurityVar = User.IsInRole("SecurityFunction")
End If
Return _SecurityVar
End Get
Set(value)
End Set
End Property
我的問題是我無法訪問未共享的_SecurityVar b / c。 我不希望_SecurityVar在我的視圖中可用,而只是SecurityVar。 然后,我需要從此類中所包含的類(例如訂單列表)中訪問這些頂級變量。 我不想簡單地返回User.IsInRole(“ SecurityFunction”),因為那樣我會多次訪問數據庫。 這將是極其低效的,尤其是在構建大型表時。 我該如何解決,還有更好的方法嗎?
只是也共享您的私有變量
Private Shared _SecurityVar = Nothing
而不是共享..讓您的子類知道他們的血統。
在子類中添加
Private myParent as <ParentClassName>
Public Sub New(Parent as <ParentClassName>)
MyParent = Parent
End Sum
在父類中使用創建子類
Dim Child as New <YourSubClassName>(Me)
然后,當您需要子類中父項的某些內容時
Var = myParent.<Property Name>
如果計划在這些子類之間移動,則還需要使_Parent成為公共對象或添加一個方法,以便以后可以對其進行更改。
如果您不想讓子類對父類具有完全訪問權限,則可以將共享變量“分組”到父類中的另一個類中,然后傳遞該變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.