Dans la programmation orientée objet, la conversion de type d'objet est un fonctionnement commun. CLR fournit deux méthodes de conversion principales: «As» Mots-clés et conversion explicite.
' As 'Mot-clé
'As' Conversion du type d'exécution de mots clés, Successeur renvoie l'objet de conversion et ne revient pas Null. Il est généralement utilisé pour convertir des objets en sous-classes spécifiques ou implémentations d'interface. Par exemple:
Si «obj» est une instance de «myClass», le composant «en tant que« renvoiera une référence à l'objet «myClass»;
object obj = new MyClass(); MyClass cls = obj as MyClass;
Exprimez l'utilisation de la grammaire . Convertissez l'objet en un type spécifié, et la conversion n'est pas valide et lancez une exception. Par exemple:
La conversion expressive peut entraîner des erreurs d'exécution lorsque le type d'objet de conversion ne correspond pas. (cast-type)
object obj = new MyClass(); MyClass cls = (MyClass)obj;
En général, les mots clés «en tant que» sont plus sûrs car il renvoie NULL lorsque la conversion ne parvient pas à éviter les erreurs d'exécution. Ce n'est que lorsque la conversion est réussie et que les performances sont importantes que la conversion doit être utilisée.
Différences sémantiques
La principale différence entre les deux méthodes est: «As» Type d'objet de vérification des mots clés, et la conversion est invalide et renvoie Null; Cette différence est importante lorsque le type d'objet est incertain (comme utiliser la réflexion).Méthode recommandée
Il est généralement recommandé d'utiliser 'comme' mots clés au lieu d'une conversion explicite. Il est plus sûr et la perte de performance n'est pas significative. Il est particulièrement utile lorsque le type d'objet est des changements pré -undown ou dynamiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!