Maison > développement back-end > C++ > Comment puis-je appeler un constructeur depuis un autre en C# pour initialiser des champs en lecture seule ?

Comment puis-je appeler un constructeur depuis un autre en C# pour initialiser des champs en lecture seule ?

Mary-Kate Olsen
Libérer: 2025-01-12 11:52:43
original
605 Les gens l'ont consulté

How Can I Call One Constructor from Another in C# to Initialize Readonly Fields?

Chaînage de constructeurs en C# : une solution pour l'initialisation de champs en lecture seule

Parfois, vous devez initialiser les readonly champs à l'aide de plusieurs constructeurs. Étant donné que les champs readonly ne peuvent se voir attribuer des valeurs qu'au sein d'un constructeur, la simple duplication de la logique d'initialisation entre les constructeurs est inefficace et sujette aux erreurs. C# propose une solution propre : le chaînage de constructeurs.

Le pouvoir de this

Le chaînage de constructeurs exploite le mot-clé this pour appeler un constructeur à partir d'un autre. Cela redirige le processus d'initialisation, éliminant le code redondant.

Voici un exemple :

public class Sample
{
    public Sample(string theIntAsString) : this(int.Parse(theIntAsString)) { }

    public Sample(int theInt) => _intField = theInt;
    public int IntProperty => _intField;

    private readonly int _intField;
}
Copier après la connexion

Cette Sample classe démontre deux constructeurs. Le premier constructeur prend une chaîne, l'analyse en un entier, puis chaîne au deuxième constructeur, en transmettant l'entier analysé. Le deuxième constructeur initialise directement le champ readonly. Cette approche maintient la logique d'initialisation centralisée tout en offrant une flexibilité dans la façon dont la classe est instanciée.

L'utilisation du chaînage de constructeurs favorise un code plus propre et plus maintenable en évitant la logique d'initialisation dupliquée, améliorant ainsi la réutilisabilité du code et réduisant le risque d'incohérences.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal