のは、私が.NETに正しいクラスのインスタンスがあることを知らせる方法
Class ViewerManager(Of ViewTable)
を持っており、その内、私はラインで、私はここでは、この
#Region "View Object Properties"
Enum ViewerManagerTemplate
Unkown = 1
TblMemorizedFilterPage = 2
TblMemorizedAEV = 3
End Enum
Protected _ManagerTemplate As ViewerManagerTemplate = ViewerManagerTemplate.Unkown
Protected ReadOnly Property ManagerTemplate As ViewerManagerTemplate
Get
If _ManagerTemplate = ViewerManagerTemplate.Unkown Then
If PageID > 0 Then
_ManagerTemplate = ViewerManagerTemplate.TblMemorizedFilterPage
Else
_ManagerTemplate = ViewerManagerTemplate.TblMemorizedAEV
End If
End If
Return _ManagerTemplate
End Get
End Property
Protected InitializedStoredView As Boolean = False
Protected _StoredView As ViewTable = Nothing
Protected ReadOnly Property StoredView As ViewTable
Get
If Not InitializedStoredView Then
InitializedStoredView = True
Select Case ManagerTemplate
Case ViewerManagerTemplate.TblMemorizedFilterPage
If PageObject.StoredViewID > 0 Then
_StoredView = CType(CType(BOs.CustomGridBO.GetMemorizedFilterPage(PageObject.StoredViewID), Object), ViewTable)
End If
End Select
End If
Return _StoredView
End Get
End Property
#End Region
のようなものを持っている内部のGet
を持って
Protected ReadOnly Property StoredView As ViewTable
を持っているとしましょう
_StoredView = CType(CType(BOs.CustomGridBO.GetMemorizedFilterPage(PageObject.StoredViewID), Object), ViewTable)
私は、BOs.CustomGridBO.GetMemorizedFilterPage
がTblMemorizedFilterPage
インスタンスを返し、この行が実行された場合、ViewTable
がTblMemorizedFilterPage
であることを確かに知っていますので、CType
の2倍は私にとって不幸なようです。これを何とか簡単にすることはできますか?
EDIT:
コメントセクションでの混乱があったので、私はより詳細な情報を提供する必要があると思います。 TblMemorizedFilterPage
とTblMemorizedAEV
は両方ともクラスであり、同じ名前を持つ列挙型の値はこれらのクラスの後に命名されます。
GetMemorizedFilterPageの戻り値は何ですか? –
TblMemorizedFilterPageインスタンスを返します。_StoredViewはViewTableのインスタンスです。この場合、TblMemorizedFilterPageを意味します。 –
TblMemorizedFilterPageは列挙型の値です。 GetMemorizedFilterPageが列挙型を返した場合、ViewTableに直接キャストできません。 –