Comment créer une classe qui hérite d'un type de données, en particulier du type de données Char? Je voulais juste ajouter une propriété. Si ce n'est pas possible, existe-t-il d'autres moyens d'y parvenir?Hériter des types de données
1
A
Répondre
2
Je ne pensais pas que vous pourriez hériter des types de systèmes. Rappelez-vous qu'une méthode d'extension peut être uniquement une procédure Sub ou une procédure Function. Vous ne pouvez pas définir une propriété, un champ ou un événement d'extension.
Vos options:
- méthode d'extension (ne peut être une fonction ou sous)
- Une structure personnalisée (utilisation réflecteur pour faire votre propre coutume Char)
- Une classe qui prend System.Char est entrée et vous permet de stocker le Char et votre propriété supplémentaire. Vous aurez besoin de mettre en œuvre votre propre
IsLetter
et similaires.
exemple rapide et sale (vous pouvez faire ce Static
en le plaçant dans un lieu Module
):
Class MyChar
Sub New()
End Sub
Sub New(byval input As System.Char)
Me.[Char] = input
End Sub
Sub New(byval input As String)
Me.Parse(input)
End Sub
Public Property [Char] As System.Char
Public Property ExtraProperty As String
Public ReadOnly Property IsLetter As Boolean
Get
return Me.[Char].IsLetter(Me.[Char])
End Get
End Property
Public Function Parse(ByVal input As String)
If (input Is Nothing) Then
Throw New ArgumentNullException("input")
End If
If (input.Length <> 1) Then
Throw New FormatException("Need a single character only")
End If
Me.[Char] = input.Chars(0)
End Function
End Class
2
Dériver de System.Char serait une folie et un effort inutile. Extension methods à la rescousse.
Questions connexes
- 1. Hériter des types immuables
- 2. Hériter de la classe de vecteurs avec différents types
- 3. SilverStripe Hériter des éléments d'un objet de données parent
- 4. Hériter des propriétés css
- 5. Haskell classes de types avec des types de données algébriques
- 6. Comment utiliser les sous-types? - surcharger et hériter en Java
- 7. Hériter des problèmes
- 8. Hériter de std :: ostringstream
- 9. Hériter des vecteurs et initialisation
- 10. Spécification des longueurs de types de données
- 11. C++ Comment hériter des interfaces avec différents types de retour? Peut-être que je
- 12. Types de données C# et types de données MySql
- 13. Implémentation des types de données en PHP
- 14. non-concordance des types de données
- 15. Utilisation des types de données WCF
- 16. Stream.of_list avec des types de données personnalisés
- 17. promotion des types de données dans c
- 18. Formatage dynamique des types de données BoundField
- 19. Gestion des types de données MongoDB
- 20. Distinguer des types de données équivalents
- 21. détection/conversion automatique des types de données?
- 22. Tester des types de données complexes?
- 23. Liste des types de données d'apex
- 24. mongoid update_attributes modification des types de données
- 25. Toujours utiliser des types de données personnalisés
- 26. Mappage de types de données Sqlite vers des types de données de structure .net (CLR)
- 27. C++ hériter des fonctions virtuelles
- 28. Théorie des types: types de types
- 29. types de données python
- 30. SML - Types de données récursifs VS Types de données polymorphes
Ceci est également disponible pour Visual Basic? – Cobold
@Cobold, bien sûr, j'ai mis à jour ma réponse pour pointer vers la partie VB.NET de la documentation. –
Existe-t-il un moyen d'ajouter une propriété? On dirait que ce n'est pas autorisé. – Cobold