RosettaCodeData/Task/Reflection-List-methods/FreeBASIC/reflection-list-methods.basic

58 lines
1.4 KiB
Plaintext

Type MetodoInfo
nombre As String
esEstatico As Integer
isPublico As Integer
End Type
Type TestParaMetodoReflexion
Declare Sub MiMetodoPublico()
Declare Sub MiMetodoPrivado()
Declare Static Sub MiMetodoEstaticoPublico()
Declare Static Sub MiMetodoEstaticoPrivado()
dummy As Integer 'In FB an TYPE cannot be empty
End Type
Sub TestParaMetodoReflexion.MiMetodoPublico()
End Sub
Sub TestParaMetodoReflexion.MiMetodoPrivado()
End Sub
Sub TestParaMetodoReflexion.MiMetodoEstaticoPublico()
End Sub
Sub TestParaMetodoReflexion.MiMetodoEstaticoPrivado()
End Sub
Sub ImprimeMetodoInfo(metodo As MetodoInfo)
Print "Method: "; metodo.nombre
Print Iif(metodo.esEstatico, " (Static)", " (Instance)")
Print Iif(metodo.isPublico, " (Public)", " (Private)")
End Sub
Sub ObtenerMetodos(metodos() As MetodoInfo)
metodos(0).nombre = "MiMetodoPublico"
metodos(0).esEstatico = 0
metodos(0).isPublico = 1
metodos(1).nombre = "MiMetodoPrivado"
metodos(1).esEstatico = 0
metodos(1).isPublico = 0
metodos(2).nombre = "MiMetodoEstaticoPublico"
metodos(2).esEstatico = 1
metodos(2).isPublico = 1
metodos(3).nombre = "MiMetodoEstaticoPrivado"
metodos(3).esEstatico = 1
metodos(3).isPublico = 0
End Sub
Dim metodos(3) As MetodoInfo
ObtenerMetodos(metodos())
For i As Integer = 0 To Ubound(metodos)
ImprimeMetodoInfo(metodos(i))
Next
Sleep