Avec la version finale de Visual Studio 2005, le langage C# a été mis à jour à la version 2.0, qui prend en charge les nouvelles fonctionnalités suivantes :
- Génériques
-
Des types génériques sont ajoutés au langage pour permettre aux programmeurs d'atteindre un haut niveau de réutilisation du code et des performances améliorées pour les classes de collection. Les types génériques peuvent différer par arité uniquement. Il est possible de forcer les paramètres à adopter des types spécifiques. Pour plus d'informations, consultez Paramètres de type générique.
- Itérateurs
-
Les itérateurs permettent d'indiquer plus facilement de quelle manière une boucle foreach doit parcourir le contenu d'une collection.
- Classes partielles
-
Les définitions de types partiels autorisent le fractionnement en plusieurs fichiers d'un seul type, par exemple, une classe. Le concepteur Visual Studio utilise cette fonctionnalité pour séparer son code généré du code utilisateur.
- Types nullables
-
Les types nullables permettent à une variable de contenir une valeur qui n'est pas définie. Les types nullables sont utiles lorsque vous travaillez avec des bases de données et autres structures de données susceptibles de contenir des éléments sans valeur spécifique.
- Méthodes anonymes
-
Il est désormais possible de passer un bloc de code comme un paramètre. Partout où un délégué est attendu, un bloc de code peut être utilisé à la place : il est inutile de définir une nouvelle méthode.
- Qualificateur d'alias d'espace de noms
-
Le qualificateur d'alias d'espace de noms (::) offre plus de contrôle en matière d'accès aux membres de l'espace de noms. L'alias global:: autorise l'accès à l'espace de noms racine qui peut être masqué par une entité dans votre code.
- Classes statiques
-
Les classes statiques constituent un moyen fiable et pratique de déclarer une classe contenant des méthodes statiques ne pouvant pas être instanciées. En C# version 1.2 vous auriez défini le constructeur de classe comme étant privé pour empêcher la classe d'être instanciée.
- Alias d'assembly externe
-
Référencez des versions différentes du même composant contenues dans le même assembly avec cette utilisation développée du mot clé extern.
- Accessibilité de l'accesseur de propriété
-
Il est désormais possible de définir différents niveaux d'accessibilité aux propriétés pour les accesseurs get et set.
- Covariance et contravariance dans les délégués
-
La méthode passée à un délégué peut avoir maintenant plus de souplesse dans son type de retour et ses paramètres.
- Comment : déclarer, instancier et utiliser un délégué
-
La conversion de groupe de méthodes offre une syntaxe simplifiée pour déclarer les délégués.
- Mémoires tampon de taille fixe
-
Dans un bloc de code unsafe, il est désormais possible de déclarer des structures de taille fixe avec des tableaux incorporés.
- Assemblys friend
-
Les assemblys peuvent donner accès aux types non publics à d'autres assemblys.
- Contrôle des avertissements insérés
-
La directive d'avertissement #pragma peut être utilisée pour désactiver et activer certains avertissements du compilateur.
Le compilateur C# introduit les additions et modifications suivantes pour cette version :
- Option /errorreport
-
Peut être utilisée pour rapporter les erreurs internes du compilateur à Microsoft via l'Internet.
- Option /incremental
-
A été supprimée.
- Options /keycontainer et /keyfile
-
Assistance spécifiant des clés de chiffrement.
- Option /langversion
-
Peut être utilisée pour spécifier la compatibilité avec une version spécifique du langage.
- Option /linkresource
-
Contient des options supplémentaires.
- Option /moduleassemblyname
-
Vous permet de construire un fichier .netmodule et d'accéder aux types non publics dans un assembly existant.
- Option /pdb
-
Spécifie le nom et l'emplacement du fichier .pdb.
- Option /platform
-
Vous permet de cibler les architectures IPF (famille Itanium) et x64.
- #pragma warning
-
Utilisé pour désactiver et activer des avertissements individuels dans le code.
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ