У меня есть класс со следующими свойствами:
Public Class PetClass
Public Enum Animal
Bird = 1
Dog = 2
Cat = 3
End Enum
Public MyPetType As Animal = Animal.Cat
Public MyPetName As String = "BigMeow"
End Class
Когда я объявляю его вот так ...
Dim n As New PetClass
... а затем наведите на него указатель мыши, я см. следующее:
Мне нравится, как отображаются свойства, особенно перечисление в строку с представлением numeri c в {}.
Я хотел бы иметь возможность распечатать всю эту информацию в консоли отладки.
Я не думаю, что это возможно, поэтому я думаю, что мне нужно воссоздать это представление, чтобы Затем я могу распечатать свой собственный подход к консоли отладки.
Я попытался получить свойства с помощью следующего кода, найденного здесь :
Public Sub DisplayAll(ByVal Someobject)
Dim _type As Type = Someobject.GetType()
Dim properties() As PropertyInfo = _type.GetProperties() 'line 3
For Each _property As PropertyInfo In properties
Console.WriteLine("Name: " + _property.Name + ", Value: " + _property.GetValue(Someobject, Nothing))
Next
End Sub
Однако нет PropertyInfo найден для моего класса.
Почему?
Если это из-за отсутствия Getters / Setters:
Использование явных Getters / Setters - это самый последний вариант, который я бы хотелось бы попробовать. В моем реальном классе более 100 свойств, и я выбрал текущий дизайн по какой-то причине.
Спасибо!
Изменить: я добавил новое свойство с помощью таких средств получения / установки :
Public Property SomeTest() As String
Get
Return "foo"
End Get
Set(value As String)
End Set
End Property
Это свойство указано в «DisplayAll», но, как я объяснил, я не хочу использовать геттеры / сеттеры, и Visual Studio, похоже, может работать и без него, так как может отображать свойства просто прекрасны: