Short VersionWie kombiniere ich `var` und` const`?
In C++ ich dies tun könnte ...
const auto & help_id = help_type.functionHelpTypeId;
Wie kann ich das in C#?
Long Version
Wie kann ich eine Variable sein ein Nur-Lese-Alias für eine Klasse Feld oder eine Eigenschaft in C# zu machen?
Ich habe eine Methode, bei der ich schreibgeschützte Aliase oben in meiner Funktion mache, um den Rest des Codes ein wenig übersichtlicher zu gestalten und später etwas Tipparbeit zu sparen.
var help_id = help_type.functionHelpTypeId;
var changeset_version = changeset.version;
var helpPageType = help_type.helpPageType;
// &ct.
Mein Problem ist, dass, da diese nicht const sind, jemand sie neu zuweisen könnten oder die Objekte mutieren sie sich beziehen, die nicht meine Absicht ist. Um zu wissen, dass dies nur readonly Aliase für Klassenfelder sind, müsste man grundsätzlich die ganze Funktion studieren, was nicht in Ordnung ist.
Kurze Antwort: Sie können nicht. Lange (er) Antwort: Sie können 'readonly' verwenden, wenn Sie die Werte in Ihrem Objektkonstruktor setzen. – DavidG
Was ist falsch bei der Verwendung von 'const' und explizite Typ-Deklaration? Hast du das probiert? 'const int help_id = help_type.functionHelpTypeId;' – Shyju
Durch "jeder könnte neu zuweisen ..." meinst du, dass du dir Sorgen machst, dass die Betreuer deines Codes versauen? Sie könnten einen Code-Kommentar hinzufügen, in dem Sie die Variablen deklarieren und zuweisen. – adv12