2009-11-10 8 views

Répondre

14

Les arguments nommés sont des entités C# 4.0. (Vous ne pouvez pas avoir de paramètres optionnels de méthode en C# < 4.0)

4

Ce n'est pas possible avant C# 4.0.

BTW, il n'y a pas de C# 2.5.

0

Bien qu'il ne s'agisse pas d'une correspondance exacte pour les arguments nommés, il existe quelque chose dans C# 3.0 pour les constructeurs similaire appelé "object initializers" qui vous permet de définir des valeurs pour les propriétés publiques lorsque vous utilisez l'opérateur new. Cela vous permet de faire des trucs comme ça:

Person p = new Person() 
{ 
    FirstName = "John", 
    LastName = "Doe", 
    Address = new Address() 
    { 
     Street = "1234 St.", 
     City = "Phoenix" 
    } 
}; 

Maintenant, afin d'utiliser ce que vous avez invoquer l'opérateur new (donc il ne fonctionnera pas pour les méthodes) et les propriétés que vous définissez besoin d'avoir le même accès qu'ils devraient vous permettre de le faire:

Person p = new Person(); 

p.FirstName = "John"; 
p.LastName = "Doe"; 

Address a = new Address(); 
a.Street = "1234 St."; 
a.City = "Phoenix"; 

p.Address = a; 

donc, ce ne vous laissera pas contourner public get mais protected set propriétés (vous ne pouvez pas faire une seule propriété initialisé par cette méthode). Cela peut rendre votre code plus lisible, mais pas dans la mesure où les arguments nommés peuvent le faire.