Dans une application C# Je travaille sur J'ai un identifiant très longtemps comme suit: -SÛR pointeur vers un pointeur (bien référence à une référence) en C#
foo.bar.bwah.blah.whatever.very.very.huge
Chaque fois que je faire référence à cet objet, il est un cauchemar absolu, et, malheureusement, je ne faut référencer beaucoup: -
var something = foo.bar.bwah.blah.whatever.very.very.huge.a;
var somethingElse = foo.bar.bwah.blah.whatever.very.very.huge.b;
foo.bar.bwah.blah.whatever.very.very.huge.c = 12;
etc., etc.
Je veux mettre à jour ce code en utilisant un alias beaucoup plus petit de quelque sorte, le problème est cependant e Je veux changer la référence sous-jacente et mettre à jour l'alias sans mettre explicitement à jour l'alias.
Actuellement, si je fais ce qui suit: -
foo.bar.bwah.blah.whatever.very.very.huge.a = "hello";
string shorter = foo.bar.bwah.blah.whatever.very.very.huge.a;
foo.bar.bwah.blah.whatever.very.very.huge.a = "world";
Console.WriteLine(shorter);
Il sortira "bonjour". Ce que je veux réaliser est quelque chose comme ce qui suit: -
foo.bar.bwah.blah.whatever.very.very.huge.a = "hello";
string** shorterPointer = &foo.bar.bwah.blah.whatever.very.very.huge.a;
foo.bar.bwah.blah.whatever.very.very.huge.a = "world";
Console.WriteLine(**shorter);
Ce qui produirait "monde" comme requis.
Je crois que vous pouvez réaliser quelque chose comme ça en utilisant du code dangereux en C#, mais je ne peux pas le faire , je dois utiliser du code de sécurité seulement.
Est-ce que quelqu'un a des idées sur comment je pourrais y parvenir?
S'il vous plaît noter: Cette question ne porte pas sur les chaînes étant immuable, je sais qu'ils sont - en fait, je suppose qu'ils sont aux fins de la question. Cela pourrait peut-être être plus simple si j'utilisais un autre type ... alors quand j'attribue "bonjour" à un "monde" à un, je suis instanciation de différents objets à chaque fois, donc ma référence stockée à un devient invalide après réaffectation
C'est très agréable Barry vous sauver la vie absolue! – ljs
Les points * sont * des symboles d'accès membres !!! Mais votre technique fonctionnera indépendamment. – ljs
Si oui, alors tout ce que vous devez faire est de garder une référence à l'énorme, et déréférencer pour obtenir le "un" membre à chaque fois. –