Si j'ai une classe appelée MyProgram
, existe-t-il un moyen de récupérer " MyProgram " sous forme de chaîne?
c#
reflection
deltanovember
la source
la source
nameof
opérateur.Je voulais jeter cela pour faire bonne mesure. Je pense que la façon dont @micahtan a été publiée est préférée.
la source
nameof(MyProgram)
.Avec C # 6.0, vous pouvez utiliser l'
nameof
opérateur:la source
Bien que la réponse de micahtan soit bonne, elle ne fonctionnera pas dans une méthode statique. Si vous souhaitez récupérer le nom du type actuel, celui-ci devrait fonctionner partout:
la source
Pour référence, si vous avez un type qui hérite d'un autre, vous pouvez également utiliser
la source
Si vous en avez besoin dans les classes dérivées, vous pouvez mettre ce code dans la classe de base:
Ensuite, vous pouvez atteindre le nom dans la classe dérivée. Renvoie le nom de classe dérivé. Bien sûr, lors de l'utilisation du nouveau mot-clé "nameof", il n'y aura aucun besoin comme cette variété agit.
De plus, vous pouvez définir ceci:
Et puis utilisez comme ceci:
la source
Utilisez ceci
Supposons que Application Test.exe est en cours d'exécution et que la fonction est foo () dans form1 [fondamentalement, c'est la classe form1 ], le code ci-dessus générera une réponse ci-dessous.
Cela reviendra.
pour le nom de la fonction:
reviendra
Notez si vous souhaitez utiliser ceci en utilisation d'exception:
la source
[Nullable(2)]
afin que vous obteniez un avertissement lorsque la vérification nulle est active.this
peut être omis. Tout ce dont vous avez besoin pour obtenir le nom de la classe actuelle est:la source
Obtenir le nom de classe actuel d'Asp.net
la source
[Nullable(2)]
afin que vous obteniez un avertissement lorsque la vérification nulle est active.