인터페이스에 약간의 문제가 있습니다. 제 수업의 무리는 ILayoutObject
인터페이스를 구현합니다. 메서드는 변수를 ILayoutObject
(Nothing으로 기본값 지정)으로 선언 한 다음 개체를 결정하는 코드를 실행합니다. 문제는 변수를 매개 변수로 받아 객체를 할당하는 메소드에서 평가 코드가 실행된다는 것입니다. 객체를 사용하면 문제가되지 않습니다. 객체는 메소드의 변경에 의해 영향을받을 것이고 모든 것이 OK가 될 것입니다. 그러나 인터페이스를 사용할 때 호출 코드의 변수는 Nothing
이며 일반 변수처럼 작동합니다. 누구든지 그것을 우회하는 방법에 대한 아이디어가 있습니까? 아아, 때문에 코드 구조에 내가 ByRef
또는 기능 :(여기인터페이스가 객체처럼 작동하지 않습니까?
를 사용할 수없는 나는 몇 가지 코드 : 개체를 변경하려는 경우가 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
'Begin Sub' ...? 확실히 VB.net은 유효한 구문을 고려하지 않습니다 ... – cHao
아, 미안, 오타 ... –