N
Nichael-E
Gast
Schönen guten Tag zusammen,
ich habe mich bewusst hier angemeldet, da ich in den letzten Tagen bei der Googlesuche immer mal wieder auf dieses Forum gestoßen und musste auch manchmal etwas schmunzeln, dass so einige Mitglieder hier etwas in der Art "... Hausaufgaben werde nier nicht gemacht..." geschrieben haben. Kann ich absolut verstehn und mit 54 Jahren geht es auch manchmal etwas langsamer und brauch auch keine Hausaufgaben mehr zu machen. Ist ja auch schon 40 Jahre her
Ich habe vor einigen Wochen mich mit der C# Programmierung befasst, da ich mich schon seit langer Zeit über die Hardware und deren Infos brennend interessiere. Ich versuche immer, Probleme selbst zu lösen oder es zu versuchen - so weit es geht. Aber hier gehts im Moment absolut nicht mehr und OOP ist schon echt der Hammer Einiges Grundwissen von TP aus den 90-er jahren habe ich noch, aber das reicht bei weitem nicht mehr und tue ich mich schon etwas schwer, was OOP angeht. Dabei fange ich ja gerade erstmal an
Basierend auf der Seite von Microsoft unter DriveInfo.GetDrives Methode werden vorhandene Laufwerke per System.IO abgefragt. Ich habe im Internet etwas Interessantes über Laufwerkstyp per .NET-Framework ermitteln gefunden.
Was mich interessiert ist, warum man einen Zähler (int counter = 0; ) für die Anzahl der Laufwerke nicht außerhalt der foreach Schleife platzieren kann. Hier ein Beispiel...
Nun frage ich mich aber, warum das denn nicht so funktioniert...
Könnte es sein, dass die Variable counter nicht im sogenannten Scope (Gültigkeitsbereich) ist? Bedeutet das , das eine Variable immer nur innerhalb der geschweiften Klammer gültig ist? Das heißt aber auch, das außerhalb der geschweiften Klammer nicht auf diese Variable zugegriffen werden!
Setze ich die Variable counter innerhalb der foreach Schleife, dann funktioniert es!
Das ist dann die Bildschirmausgabe... Oben steht der Wert 0 - unten dann auch richtig der Wert 6
Vorhandene Logische Laufwerke...0
Laufwerk: C:\ Typ: Fixed
Laufwerk: D:\ Typ: Fixed
Laufwerk: E:\ Typ: Fixed
Laufwerk: F:\ Typ: Fixed
Laufwerk: G:\ Typ: Fixed
Laufwerk: H:\ Typ: Fixed
Vorhandene Logische Laufwerke...6
[Enter] zum Beenden drücken...
Könnte mir denn mal jemand BITTE sagen, was hier falsch ist? Variable auf "Global" setzen ? Wie denn? Vielleicht bin ich ja auch etwas kleinkariert, aber mich würde schon sehr interessieren, warum das so nicht geht!
Ich bedanke mich schon jetzt für Eure Vorschläge und bedenkt... "Ich bin noch Anfänger"
Gruß aus der Eifel (bei Köln)
ich habe mich bewusst hier angemeldet, da ich in den letzten Tagen bei der Googlesuche immer mal wieder auf dieses Forum gestoßen und musste auch manchmal etwas schmunzeln, dass so einige Mitglieder hier etwas in der Art "... Hausaufgaben werde nier nicht gemacht..." geschrieben haben. Kann ich absolut verstehn und mit 54 Jahren geht es auch manchmal etwas langsamer und brauch auch keine Hausaufgaben mehr zu machen. Ist ja auch schon 40 Jahre her
Ich habe vor einigen Wochen mich mit der C# Programmierung befasst, da ich mich schon seit langer Zeit über die Hardware und deren Infos brennend interessiere. Ich versuche immer, Probleme selbst zu lösen oder es zu versuchen - so weit es geht. Aber hier gehts im Moment absolut nicht mehr und OOP ist schon echt der Hammer Einiges Grundwissen von TP aus den 90-er jahren habe ich noch, aber das reicht bei weitem nicht mehr und tue ich mich schon etwas schwer, was OOP angeht. Dabei fange ich ja gerade erstmal an
Basierend auf der Seite von Microsoft unter DriveInfo.GetDrives Methode werden vorhandene Laufwerke per System.IO abgefragt. Ich habe im Internet etwas Interessantes über Laufwerkstyp per .NET-Framework ermitteln gefunden.
Was mich interessiert ist, warum man einen Zähler (int counter = 0; ) für die Anzahl der Laufwerke nicht außerhalt der foreach Schleife platzieren kann. Hier ein Beispiel...
Code:
class Program
{
static void Main(string[] args)
// private void Main(string[] args)
{
int counter = 0; // Zähler für die Anzahl Logischer Laufwerke
// counter++; // Zähler um +1 erhöhen - funktioniert aber nicht!
Console.WriteLine("Vorhandene Logische Laufwerke..." + counter); // Das funktioniert nicht!!!
Console.WriteLine("\n"); // Zeilenvorschub
foreach (DriveInfo di in DriveInfo.GetDrives())
{
// Console.WriteLine("Vorhandene Logische Laufwerke...");
counter++; // Zähler um +1 erhöhen
Console.WriteLine("Laufwerk: " + "{0} Typ: {1}", di.Name, di.DriveType.ToString());
}
Console.WriteLine("\nVorhandene Logische Laufwerke..." + counter); // Das funktioniert!!!
Console.WriteLine("\n[Enter] zum Beenden drücken..."); // ESC Sequenz '\n' LF setzen
Console.ReadLine(); // Auf Tastendruck warten
} // end Static Void
} // end Class
Nun frage ich mich aber, warum das denn nicht so funktioniert...
Code:
Console.WriteLine("Vorhandene Logische Laufwerke..." + counter); // Funktioniert nicht!
Könnte es sein, dass die Variable counter nicht im sogenannten Scope (Gültigkeitsbereich) ist? Bedeutet das , das eine Variable immer nur innerhalb der geschweiften Klammer gültig ist? Das heißt aber auch, das außerhalb der geschweiften Klammer nicht auf diese Variable zugegriffen werden!
Setze ich die Variable counter innerhalb der foreach Schleife, dann funktioniert es!
Code:
Console.WriteLine("\nVorhandene Logische Laufwerke..." + counter); // Das funktioniert!!!
Das ist dann die Bildschirmausgabe... Oben steht der Wert 0 - unten dann auch richtig der Wert 6
Vorhandene Logische Laufwerke...0
Laufwerk: C:\ Typ: Fixed
Laufwerk: D:\ Typ: Fixed
Laufwerk: E:\ Typ: Fixed
Laufwerk: F:\ Typ: Fixed
Laufwerk: G:\ Typ: Fixed
Laufwerk: H:\ Typ: Fixed
Vorhandene Logische Laufwerke...6
[Enter] zum Beenden drücken...
Könnte mir denn mal jemand BITTE sagen, was hier falsch ist? Variable auf "Global" setzen ? Wie denn? Vielleicht bin ich ja auch etwas kleinkariert, aber mich würde schon sehr interessieren, warum das so nicht geht!
Ich bedanke mich schon jetzt für Eure Vorschläge und bedenkt... "Ich bin noch Anfänger"
Gruß aus der Eifel (bei Köln)