我的界面有点问题。我的一堆类实现了ILayoutObject
接口。一个方法将一个变量声明为ILayoutObject
(默认为 Nothing),然后运行一些代码来决定它应该是哪个对象。问题是,评估代码在一个方法中运行,该方法接收变量作为参数并为其分配一个对象。对于对象,这将没有问题。对象会受到方法更改的影响,一切都会好起来的。然而,当使用一个接口时,调用代码中的变量仍然存在Nothing
并且表现得像一个普通变量。有没有人对如何规避这一点有任何想法?唉,由于代码结构,我无法使用ByRef
或功能:(
这是一些代码:
Protected LayoutHandler As Dictionary(Of String, Action(Of Constants.OptionsEntryStructure, ILayoutElements)) = New Dictionary(Of String, Action(Of Constants.OptionsEntryStructure, ILayoutElements)) From
{
{Constants.KeyLayoutType, AddressOf KeyLayoutType}
}
Sub MakeLayOuts
Dim LayoutElement As ILayoutElements = Nothing
Dim Value = "SomeValues"
Dim key = "Key"
LayoutHandler(key)(Value, LayoutElement)
' LayoutElement remains nothing.....
End Sub
Protected Sub KeyLayoutType(elem As Constants.OptionsEntryStructure, Layout As ILayoutElements)
Layout = New LayoutObject 'which would implement the interface
End Sub