Benutzer mit den meisten Antworten
Abfragen, ob Boolean exisitert, oder nicht

Frage
-
Hallo Leute,
mittels folgendem Code wird unter bestimmten Umständen eine boolsche Variable mit einem Wert belegt, oder eben nicht:
private static bool decideHow2Count; . . if(args.Count() == 5) { bool flag; if(Boolean.TryParse(args[4], out flag)) decideHow2Count = flag; else { _startExternalJobId = args[3]; _startOutputFileResponse = args[4]; } }
Wie überprüfe ich jetzt später, ob decideHow2Count mit einem Wert belegt wurde, oder nicht. Kann ein Boolean Null sein, oder besser, ist er null, wenn er nicht mit einem Wert belegt wurde? Kann ich also folgende Abfrage starten?
if(decideHow2Count != null && decideHow2Count) { . . } else if(decideHow2Count != null && !decideHow2Count) { . . }else{
.
.
}
ohne dass mir das um die Ohren fliegt? Oder sollte ich besser folgendes verwenden?
private static bool? decideHow2Count
if(decideHow2Count.HasValue) {
if(decideHow2Count==true) {
}elseif(decideHow2Count == false) {
}
}
Vorab vielen Dank ob der Statements
- Bearbeitet tklustig Mittwoch, 30. Januar 2019 11:13
Mittwoch, 30. Januar 2019 11:00
Antworten
-
Ich kann den Code lokal weder testen noch debuggen.
Dafür gibt es die Möglichkeit remote zu debuggen, zumindest für Projekte die mit dem Visual Studio erstellt wurden.
Neben Fragen und Testen, auch immer gut, ein Blick in die Dokumentation.Da Du
private static bool? decideHow2Count
selbst angeführt hast, dürfte jeder davon ausgehen, dass Dir bekannt ist, was dort passiert - falls nicht, gerne Nachlesen: Verwenden von Nullable-Typen (C#-Programmierleitfaden)
Ich würde davon ausgehen das eine Zuweisung von null zwingend erforderlich ist, denn im Zweifel ist kein Standardwert definiert (darum auch die Warnung, wenn eine Variable ohne Zuweisung benutzt wird) und es könnte alles in der Variable stehen. Den Anfangszustand einer Variable solltest Du immer festlegen!
- Gruß Florian
- Als Antwort markiert tklustig Donnerstag, 31. Januar 2019 14:54
Donnerstag, 31. Januar 2019 08:52
Alle Antworten
-
Hi,
ein bool kann null sein, wenn man ihm das sagt (er also mittels vorangestelltem ? nullable ist)
bool ?decideHow2Count = null; ... if( decideHow2Count.HasValue ) { MessageBox.Show( decideHow2Count.ToString() ); } else { MessageBox.Show( "Kein Wert" ); }
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, RemotesupportMittwoch, 30. Januar 2019 11:11Moderator -
Und was für einen Wert hat der Boolean, bezogen auf meinen Code, wenn ihm nix zugewiesen wird, also weder null, noch true, noch false? Wenn er erst gar nicht initialisiert wird, weil Boolean.TryParse(args[4],out flag false ist?
- Bearbeitet tklustig Mittwoch, 30. Januar 2019 12:20
Mittwoch, 30. Januar 2019 12:19 -
... weder null, noch true, noch false?...
Ist das dein ernst?
Nimm dir doch einfach mal eine kleine Consolen-Anwendung zum testen, geht auch schneller, als die Frage zu stellen... ;)
Nicht böse gemeint, aber dir fehlen einfache Grundlagen.
Gruß
PS: NULL !!!!!!!!!!!!!
Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP
Mittwoch, 30. Januar 2019 13:05 -
Hi,
leider muss ich das so deutlich sagen: Mach deine Hausaufgaben selbst!
Und was für einen Wert hat der Boolean, bezogen auf meinen Code, wenn ihm nix zugewiesen wird, also weder null, noch true, noch false? Wenn er erst gar nicht initialisiert wird, weil Boolean.TryParse(args[4],out flag false ist?
Es ist dein Code, nicht unserer. Ich hab dir ja schon mal gesagt, dass Du selbst testen und debuggen musst. Warum dann immer wieder solche Fragen kommen, kann ich eigentlich nur mit absolutem Unverständnis oder mit Ignoranz erklären.
Abgesehen davon kann (in manchen Fällen auch muss) man der Variablen bei der Deklaration auch einen Defaultwert mitgeben. Wenn dann nirgends Code durchlaufen wird, der diesen Wert ändert, bleibt der halt so.
P.S.: Ich denke so langsam, Sandra ist recht sicher wieder unter uns.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, RemotesupportMittwoch, 30. Januar 2019 16:02Moderator -
Ich kann den Code lokal weder testen noch debuggen. Sonst hätte ich das selbstverständlich längst gemacht, anstatt meine Zeit in der Formulierung derartiger Fragen zu "verschwenden". Auch das Aufsetzen eines Demoprojektes(Konsolenanwendung) war mir zum Zeitpunk der Fragestellung nicht möglich. Vielleicht sollte ich derartige Informationen zu Beginn preisgeben. Aber das ist nicht der Punkt. Ich stelle eine Frage in der Hoffnung, dass jemand aufgrund seines Erfahrungsschatzes antwortet. Wenn das der Fall ist, gut, wenn nicht, ändert sich nix. Außerdem verstehe ich Lösungsvorschläge immer nur als Anregung. In aller Regel will und muss ich den Ansatz selber nachvollziehen können. Solange das nicht der Fall ist, hake ich nach, was offensichtlich so machen sauer aufstößt.....
In diesem Fall würde ich wohl einen Defaultwert initialisieren, der dann "..halt so bleibt"
- Bearbeitet tklustig Mittwoch, 30. Januar 2019 19:12
Mittwoch, 30. Januar 2019 19:09 -
Hi,
Ich kann den Code lokal weder testen noch debuggen.
dann machst Du etwas grundlegendes komplett falsch. Ich hab zwar keine Ahnung, wie man auch nur ansatzweise so arbeiten kann (bzw. nicht kann) aber Du solltest doch dringend mal darüber nachdenken, dass deine Arbeitsweise nie zu einem befriedigenden Ergebnis führen kann.
Auch das Aufsetzen eines Demoprojektes(Konsolenanwendung) war mir zum Zeitpunk der Fragestellung nicht möglich. Vielleicht sollte ich derartige Informationen zu Beginn preisgeben.
Die Information würde zumindest bei mir rein gar nichts bringen, denn ich setze natürlich voraus, dass der Fragesteller das kann. Wenn es einen wirklich triftigen Grund dafür geben sollte (mir fällt allerdings noch nicht mal ansatzweise einer ein, denn wenn man Foreneinträge schreiben kann, kann man auch testen und debuggen), sag den mal.
Ich weiß echt nicht, wie Du dir das vorstellst. Nimmst Du irgendwelchen Code, den dir irgendjemand postet, baust den ein und lässt den auf eine Produktivumgebung los? Falls ja, sei mir nicht böse aber dann hast Du definitiv den falschen Beruf gewählt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Bearbeitet Stefan FalzModerator Mittwoch, 30. Januar 2019 22:27
Mittwoch, 30. Januar 2019 22:17Moderator -
Hallo,
ich versuche mal deine Frage in einem anderen Kontext zu stellen damit Du vielleicht verstehst wie diese bei uns ankommt.
Sagen wir mal ich bin Koch und ein anderer Koch kommt zu mir und fragt mich ob erst die Kartoffeln erst kochen muss bevor erst sie den Kunden gibt. So eine Frag ist das. Ein nicht Koch kann so ein Frage stellen, aber nun mal kein Koch.
Du meinst produktiv zu entwickeln, dann darfst Du solche fragen nicht stellen. So etwas musst Du wissen. Da Du es nicht weißt, solltest Du aufhören produktiv zu entwickeln. Fange klein an und lerne erstmal die Grundlagen. Genügend Bücher gibt es.
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI StringsDonnerstag, 31. Januar 2019 08:30 -
Nun, die oben geschilderte Frage stand in keinster Weise im Kontext zu meiner Arbeit. Sprich, ich hatte diese Frage nicht von meinem Arbeitsrechner gepostet. Ich denke nicht, dass ich posten muss, warum ich Fragen stelle, nur soviel:
Zum Zeitpunkt der Fragestellung war ich auf der Autobahn. Via WLAN konnte ich mich mit meinem Smartphone ins WWW einloggen. Dass man mit einem Smartphone allerdings nicht wirklich C# Projekte aufrufen kann, dürfte wohl einleuchten....
Donnerstag, 31. Januar 2019 08:35 -
Ich kann den Code lokal weder testen noch debuggen.
Dafür gibt es die Möglichkeit remote zu debuggen, zumindest für Projekte die mit dem Visual Studio erstellt wurden.
Neben Fragen und Testen, auch immer gut, ein Blick in die Dokumentation.Da Du
private static bool? decideHow2Count
selbst angeführt hast, dürfte jeder davon ausgehen, dass Dir bekannt ist, was dort passiert - falls nicht, gerne Nachlesen: Verwenden von Nullable-Typen (C#-Programmierleitfaden)
Ich würde davon ausgehen das eine Zuweisung von null zwingend erforderlich ist, denn im Zweifel ist kein Standardwert definiert (darum auch die Warnung, wenn eine Variable ohne Zuweisung benutzt wird) und es könnte alles in der Variable stehen. Den Anfangszustand einer Variable solltest Du immer festlegen!
- Gruß Florian
- Als Antwort markiert tklustig Donnerstag, 31. Januar 2019 14:54
Donnerstag, 31. Januar 2019 08:52 -
Hi,
Du musst natürlich gar nichts. Wir aber auch nicht.
Von wo aus Du die Frage postest, ist ziemlich egal, gerne auch vom Auto aus (ich hoffe aber mal, während Du im Stau oder sonstwo standest und nicht während des Fahrens).
Es geht um die Fragen an sich. Thomas hat es doch sehr treffend formuliert.
Es ist kein Problem, wenn auch komplette Newbies Fragen stellen, die können auch gerne sehr banal sein (ohne das jetzt böse zu meinen, jeder hat mal angefangen und keiner ist mit allem Wissen vom Himmel gefallen). Aber in deinem Fall hast Du jetzt schon häufiger erwähnt, dass Du den Code lokal nicht testen und schon gar nicht debuggen kannst, Du das direkt in der Produktivumgebung machen musst, auch kleinste Sachen auf einmal nicht selbst testen kannst (ich erinnere nur mal an letzten Zeilenumbruch einer Datei entfernen und deine Frage:
ein lokaler Test ist derzeit nur schwer möglich
...
Korrekt? Kann ich das kompilieren, ohne getestet zu haben und mich darauf verlassen, dass es klappt?).
So kann man niemals arbeiten.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, RemotesupportDonnerstag, 31. Januar 2019 08:55Moderator -
Korrekt. Erschwerend kommt hinzu dass meine Kenntnisse in C# de facto nicht die größten sind, das gebe ich schamlos zu. Mein eigentliches Aufgabengebiet besteht eigentlich eher in der Neuentwicklung und Wartung von Webapplikationen (PHP, JavaScript, MySqL, Apache, Nginx etc..etc..) C# kommt, zumindest auf Arbeit, nur alle Jubeljahre mal vor. Die Fragen die ich hier poste, stehen nicht immer im Kontext zu meiner Arbeit. Tun sie es doch, geht es eigentlich immer nur um angedachte Änderungen an bereits bestehenden Projekten, die sich seit längerem im Produktiveinsatz befinden. In den seltensten Fällen werden diese Änderungen auch übernommen, schon gar nicht, wenn sie von mir stammen. Schuster, bleib bei Deinen Leisten...
Vielen Dank an Floran. Der Tipp mittels Link 'remote Debuggen' ist echt eine Erlösung. Wuße gar nicht, dass das geht. Werde ich in Zukunft auf jeden Fall machen...!
- Bearbeitet tklustig Donnerstag, 31. Januar 2019 09:13
Donnerstag, 31. Januar 2019 09:06 -
Genau das ist dein größtes Problem, Du denkst das Du was kannst und so vermittelst Du es wohl auch deinem Arbeitgeber. Du hast aber in punkto Softwareentwicklung keine Ahnung. Kein Softwareentwickler würde einen 800MB große Textdatei einfach mal einer Variabel zuweisen. Das geht gar nicht. Da spiel die Programmiersprache keine rolle.
Um etwas gut zu können, sollte man 10.000 Stunden investieren und erst dann ohne Hilfe produktiv entwickeln.
Grade wenn man Änderung an einem bestehenden System durchführen will, muss man es könnten. Da man den bestehenden Code zu 100% verstehen muss. Wenn ich ein System nur zu 99% verstehe, mache ich keine Änderungen. In einem Testsystem kann man das machen. So lernt man das System besser kennen.
P.S. Deswegen ist auch der vergleich mit Sandra nicht fair. Sandra wusste was sie kann oder nicht kann. Das hier ist um einiges schlimmer und ich hätte nie gedacht das sowas möglich ist.
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings
- Bearbeitet Thomas Wycichowski Donnerstag, 31. Januar 2019 14:09
Donnerstag, 31. Januar 2019 10:16 -
Na ja, wenn du so programmierst, wie du schreibst, können Deine Kentnisse auch nicht gerade die Besten sein. Aber lassen wird das. Ich, und sicher auch Ihr habt bestimmt besseres zu tun, als sich diesen Shitstrom reinzuziehen. Explizit nochmals Danke an Florain für seinen Post. Dieser Thread kann geschlossen werden!
P.S.: Kenne Sandra nicht, bin es nicht und poste auch nicht unter fremden Pseudonymen
- Bearbeitet tklustig Donnerstag, 31. Januar 2019 14:54
Donnerstag, 31. Januar 2019 14:51 -
Ich bin in Polen geboren und deutsch ist für mich eine Fremdsprache, zudem war Rechtschreibung und Grammatik noch nie meine stärken. Ich bilde mir das aber auch nicht ein und bin mir meiner schwäche bewusst. Außerdem bin ich Asperger Autist und Sprachen sind nicht meine stärke.
Ich habe auch kein bock auf sowas. Aber ich bin hier in den Foren und andren zu helfen. Dir kann man scheinbar nur helfen indem man dich von deinem "hohen Ross" runterholt und dir immer wieder aufzeigt wieviel Du noch zu lernen hast. Damit Du etwas Demut vor der Softwareentwicklung bekommst.
Ich bin weder besser noch schlechter als Du es bist. Ich habe mich einfach nur länger mit diesem Thema beschäftigt
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings
- Bearbeitet Thomas Wycichowski Donnerstag, 31. Januar 2019 15:39
Donnerstag, 31. Januar 2019 15:17