(Suite)
19.4 Types incomplets
Bien que ce soit une bonne pratique de programmation de conserver tout le code source d'un type dans un seul fichier, parfois, un type devient très volumineux et cela devient une limite irréaliste. De plus, les programmeurs utilisent souvent des générateurs de code source pour générer la structure initiale d'une application et modifier le code résultant. Malheureusement, lorsque le code source sera réémis dans le futur, les modifications existantes seront écrasées.
Les types incomplets (types partiels) permettent de diviser les classes, les structures et les interfaces en plusieurs parties et de les stocker dans différents fichiers sources, ce qui est plus pratique pour le développement et la maintenance. De plus, les types incomplets permettent de séparer les parties de certains types générées par la machine et celles écrites par l'utilisateur, ce qui facilite l'augmentation du code produit par l'outil.
Lors de la définition d'un type en plusieurs parties, vous pouvez utiliser un nouveau modificateur de type partiel. Vous trouverez ci-dessous un exemple de classe incomplète implémentée en deux parties. Les deux parties peuvent se trouver dans des fichiers sources différents, par exemple, car la première partie est générée automatiquement via un outil de mappage de base de données et la seconde partie est créée à la main.
public partial class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } } public partial class Customer { public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
Lorsque les deux parties précédentes sont compilées ensemble, le code résultant est le même que la classe écrite comme une seule unité.
public class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
Toutes les parties d'un type incomplet doivent être compilées ensemble afin que les parties puissent être fusionnées au moment de la compilation. En particulier, les types incomplets ne permettent pas d'étendre les types déjà compilés.
Ce qui précède est le contenu de la spécification C# 2.0 (3). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !