Bonjour,
Concernant l'usage d'un initialiseur, il est ecrit que l'initialisation d'un champ par ce biais efface une éventuelle initialisation de ce même champ qui aurait été effectuée par le biais d'un constructeur.
Dans ce cas, pourquoi "effacer " l'initialisation du constructeur , ou initialiser un champ par le biais d'un initialiseur alors qu'elle est déjà effectuée, pour ce champ, dans un constructeur?
Quand cela peut être utile?
Merci beaucoup de votre aide sur ce point.
Cordialement.
new_wave
Voici un exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test_Revisions_C_sharp { public enum ResidenceType { House, Flat, Bungalow, Apartment }; class Residence { public ResidenceType type; public int numberOfBedrooms; public bool hasGarage; public bool hasGarden; public Residence(ResidenceType type, int numberOfBedrooms) { this.type = type; this.numberOfBedrooms = numberOfBedrooms; }//fin de 1er constructeur public Residence(ResidenceType type, int numberOfBedrooms, bool hasGarage) { this.type = type; this.hasGarage = hasGarage; this.numberOfBedrooms = numberOfBedrooms; }//fin de 2ème constructeur }//fin de classe }//fin de namespaceOn remarque bien au niveau de la fenêtre des varaibles locales, que la variable numberOfBedrooms = 4 alors qu'elle est initialisée à 3 dans le constructeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.IO; namespace Test_Revisions_C_sharp { /// <summary> /// Logique d'interaction pour MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void test_initialiseur_Click(object sender, RoutedEventArgs e) { Residence myHouse = new Residence(ResidenceType.House, 3) { numberOfBedrooms = 4 }; }//fin de méthode test_initialiseur }//fin de classe }//fin de namespa
Partager