Variable assigned but never used
Hallo Kollegen,
ich habe eine GUI mit mehreren Schaltern für verschiedene Aufgaben.
Außerdem gib es einen "Ausführen" Schalter für alle Aufgaben.
Ich möchte, dass bei beim Betätigen des "Ausführen" Schalters bei den Aufgaben-Schaltern.
die noch nicht programmiert sind eine Meldung ausgegeben wird.
So habe ich mir das gedacht:
Soweit die Theorie. Mein Problem ist, dass ich in PS Code die Meldung bekomme:
The variable 'currenttask' is assigned but never used.
Irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Könnte mir jemand von den Profis mal einen Tritt in die richtige Richtung geben?
Lösung
Das Problem ist der Scope der Variable.
Wenn ich im Aufgaben-Schalter .Add_Click Block die Variable als
$script:currenttask definiere, kann ich sie im Ausführen-Schalter Block auch auslesen.
Grüße vom it-frosch
ich habe eine GUI mit mehreren Schaltern für verschiedene Aufgaben.
Außerdem gib es einen "Ausführen" Schalter für alle Aufgaben.
Ich möchte, dass bei beim Betätigen des "Ausführen" Schalters bei den Aufgaben-Schaltern.
die noch nicht programmiert sind eine Meldung ausgegeben wird.
So habe ich mir das gedacht:
# diese Variable soll die aktuelle Aufgabe enthalten
# Am Anfang des Scripts setzte ich sie auf 0
$currenttask = 0
# Jeder Aufgaben-Schalter enthält im .Add_Click Aktionsteil
$currenttask = 10001
# wobei die Nummer bei jedem Aufgaben-Schalter unterschiedlich ist
# Im Aktionsteil des "Ausführen" Schalters frage ich die Variable ab.
.Add_Click({
if ($currenttask -eq 10001) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10002) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10003) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10004) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10006) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10007) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10008) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10009) {AppendToTextBox_Red("Noch nicht implementiert `n")}
if ($currenttask -eq 10010) {AppendToTextBox_Red("Noch nicht implementiert `n")}
Soweit die Theorie. Mein Problem ist, dass ich in PS Code die Meldung bekomme:
The variable 'currenttask' is assigned but never used.
Irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Könnte mir jemand von den Profis mal einen Tritt in die richtige Richtung geben?
Lösung
Das Problem ist der Scope der Variable.
Wenn ich im Aufgaben-Schalter .Add_Click Block die Variable als
$script:currenttask definiere, kann ich sie im Ausführen-Schalter Block auch auslesen.
Grüße vom it-frosch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 11367301626
Url: https://administrator.de/contentid/11367301626
Ausgedruckt am: 08.11.2024 um 03:11 Uhr
8 Kommentare
Neuester Kommentar
Zitat von @it-frosch:
@erikro
OMG :D - Da hatte ich wohl noch SQL im Kopf. Damit sind die 9 Ausgaben weg aber die Meldung
Habe es oben im Code korrigiert.
Die Meldung
The variable 'currenttask' is assigned but never used.
bekomme ich noch immer.
Hast du dazu noch eine Idee?
grüße vom it-frosch
@erikro
OMG :D - Da hatte ich wohl noch SQL im Kopf. Damit sind die 9 Ausgaben weg aber die Meldung
Habe es oben im Code korrigiert.
Die Meldung
The variable 'currenttask' is assigned but never used.
bekomme ich noch immer.
Hast du dazu noch eine Idee?
grüße vom it-frosch
Poste mal den vollständigen Code.
Hallo,
scheint ein false-positive im PSScriptAnalyze zu sein, da die Variable in einem anderen Scope verwendet wird. Siehe Hier.
Deaktivieren kannst du die Meldung mit folgendem Inline-Attribut:
Gruß
OpSec
scheint ein false-positive im PSScriptAnalyze zu sein, da die Variable in einem anderen Scope verwendet wird. Siehe Hier.
Deaktivieren kannst du die Meldung mit folgendem Inline-Attribut:
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'currenttask', Justification = 'Wird in einem anderem Scope verwendet')]
Gruß
OpSec
Zitat von @it-frosch:
Wenn ich eine leere PS1 Datei nehme und nur
hineinschreibe, habe ich denselben Fehler.
The variable 'currenttask' is assigned but never used.
$currenttask = 0
function set_currenttask($wert) {
$currenttask = $wert
}
hineinschreibe, habe ich denselben Fehler.
The variable 'currenttask' is assigned but never used.
Zum einen ist es ja nur eine Warnung und kein Fehler, zum anderen wird die Variable im Programmablauf auch nie genutzt.