Question

in c #, les initialisateurs d'objets peuvent définir des champs et des propriétés publiques non en lecture seule.

Cependant, avec des types anonymes, les propriétés sont en lecture seule.Alors, comment .net les a défini sur l'initialisation de l'objet?

Était-ce utile?

La solution

L'initialisateur d'objet pour les types anonymes ne se comporte pas comme un initialiseur d'objet normal.C'est-à-dire que cela ne définit pas les propriétés directement.Il est traduit dans un appel au constructeur, ce qui peut changer de champs à réadonner.

Autres conseils

Comme toutes les propriétés en lecture seule, elles peuvent être définies dans le constructeur.

Un constructeur pour le type anonyme est généré avec et les champs définis à travers elle.

En outre, ils peuvent être définis via une réflexion ou via le correctif du code géré après la création.

E.g.Il suffit d'obtenir les champs avec les drapeaux de liaison appropriés, puis énumérer et appelez SETValue avec les paramètres corrects ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top