I have the following code:
Public Class Form1
Private Function Step1_Execute() As Boolean
Return Step1_Verify()
End Function
Private Function Step1_Verify() As Boolean
Return True
End Function
Private Function Step2_Execute() As Boolean
Return Step2_Verify()
End Function
Private Function Step2_Verify() As Boolean
Return True
End Function
End Class
What I would like to do is be able to separate the code, similar to the following (which obviously doesn't work):
Public Class Form1
Namespace Step1
Private Function Step1_Execute() As Boolean
Return Step1_Verify()
End Function
Private Function Step1_Verify() As Boolean
Return True
End Function
End Namespace
Namespace Step2
Private Function Step2_Execute() As Boolean
Return Step2_Verify()
End Function
Private Function Step2_Verify() As Boolean
Return True
End Function
End Namespace
End Class
I would like the functionality of namespaces inside of a class, as in something that would let me call Step2.Execute() instead of having to put Step2_ in front of a whole bunch of functions. I don't want to have to create separate classes / modules for step1, step2, etc.
Is there a way that I can accomplish namespace functionality from inside a class?
How about just using a module (equivalent for the most part to a static class in C#)? That would seem to do the job well and give you the reference style you want.
Module Step1
Private Function Execute() As Boolean
Return Verify()
End Function
Private Function Verify() As Boolean
Return True
End Function
End Module
Module Step2
Private Function Execute() As Boolean
Return Step2_Verify()
End Function
Private Function Verify() As Boolean
Return True
End Function
End Module
I believe you can even nest VB.NET Module
s within other classes, if you wish.
Just realised that all of the modules have the same contract (set of method signatures), so it would actually make sense to implement an interface here, and create instances of the class. A tad more code perhaps, but if you want to abstractify things, it may be worth the effort.