In C# habe ich ein String-Array, das ich voll mit "Getter" Methodenaufrufe geschrieben habe. Sie rufen Methoden in einer anderen Klasse auf, sodass das Array mit den erforderlichen Strings gefüllt wird. Es sieht ungefähr so aus:Wie aktualisiere ich ein Array voller zurückgegebener Werte von Methodenaufrufen?
string[] mCalls = {c.get1(), c.get2(), c.get3()};
Ich bin mir sicher, dass diese Situation für jedes Programm gelten könnte. In meinem Programm werden jedoch die Variablen, die diese Methoden zurückgeben, anfänglich mit der Zeichenkette "Unchecked"
gesetzt - und füllen dieses Beispielarray dreimal mit Unchecked. Wenn mein Programm weiterläuft und die Dinge überprüft werden, werden die Werte der String-Variablen innerhalb der Klasse geändert, in der sie sich befinden. Ich habe die Getter-Methoden zu geeigneten Zeiten einfach erneut aufgerufen, um das in meinem Array zu ändern:
mCalls[0] = c.get1();
mCalls[1] = c.get2();
mCalls[2] = c.get3();
Ich mag das nicht wirklich. Es scheint unvermeidlich, dass ich eines Tages etwas ändern muss, und wenn das passiert, muss ich manuell die langwierige Arbeit machen, die gesamte Indexierung in meinem Programm zu ändern. Wenn das der beste Weg ist, geht es mir gut, aber ich nehme an, es gibt bessere Wege. Also, in jedem Fall, gibt es einen Weg, um die Werte in einem Array, das so eingerichtet ist "zu aktualisieren"? Und wenn ja, was ist das?
Sie mCalls eine Eigenschaft machen kann und der Getter gibt ein Array, das das Ergebnis der ist Methodenaufrufe. Auf diese Weise müssen Sie den Getter nur aktualisieren, wenn sich etwas ändert. –
Sie könnten eine übergeordnete Methode erstellen, die 'mCalls' als Eingabe (oder eine Ref) verwendet und dann jede andere Methode darin ausführt. Dies ist technisch das Gleiche wie das, was Sie gerade tun, erfordert aber weniger wiederholten Code, so dass 'mCalls [0] = c.get1(); mCalls [1] = c.get2(); mCalls [2] = c.get3(); ' kann ersetzt werden mit ' GetMCalls (ref mCalls); '(GetMCalls in einem Beispielmethodennamen) –
Sie haben kein Array mit Methodenaufrufen. Sie haben ein Array mit Strings, in denen die Strings von einem Methodenaufruf stammen. Der Methodenaufruf existiert in Ihrem Array nicht. – CathalMF