J'ai un cours.
Public Class Foo
Private _Name As String
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Private _Age As String
Public Property Age() As String
Get
Return _Age
End Get
Set(ByVal value As String)
_Age = value
End Set
End Property
Private _ContactNumber As String
Public Property ContactNumber() As String
Get
Return _ContactNumber
End Get
Set(ByVal value As String)
_ContactNumber = value
End Set
End Property
End Class
Je veux parcourir les propriétés de la classe ci-dessus. par exemple;
Public Sub DisplayAll(ByVal Someobject As Foo)
For Each _Property As something In Someobject.Properties
Console.WriteLine(_Property.Name & "=" & _Property.value)
Next
End Sub
.net
vb.net
class
reflection
properties
Sachin Chavan
la source
la source
BindingFlags.Public | BindingFlags.GetProperty
ou quelque chose?Notez que si l'objet dont vous parlez a un modèle de propriété personnalisé (tel que
DataRowView
etc forDataTable
), vous devez utiliserTypeDescriptor
; la bonne nouvelle est que cela fonctionne toujours bien pour les cours réguliers (et peut même être beaucoup plus rapide que la réflexion ):Cela permet également d'accéder facilement à des éléments tels
TypeConverter
que le formatage:la source
Version VB de C # donnée par Brannon:
Utilisation d'indicateurs de liaison au lieu de la ligne n ° 3
la source
La réflexion est assez "lourde"
Essayez peut-être cette solution: // C #
«VB.Net
La réflexion ralentit +/- 1000 x la vitesse d'un appel de méthode, comme indiqué dans The Performance of Everyday Things
la source
Voici une autre façon de le faire, en utilisant un lambda LINQ:
C #:
VB.NET:
la source
Voilà comment je fais.
la source
J'ai utilisé le bloc de code ci-dessus pour réinitialiser toutes les propriétés de chaîne dans mon objet de contrôle utilisateur Web dont les noms commencent par "Doc".
la source