Autor Beitrag
EminePirinc
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.08.08 12:43 
Hallo..

ich arbeite mit Microsoft Visual Studio 2005, bin anfängerin. Ich habe ein paar fertige Codes die auch funktionieren. Leider weiß ich nicht ganz genau welche Aufgaben sie haben und was sie sind.

Kann mir einer helfen?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 04.08.08 13:59 
Hallo und :welcome:!

Dein Beitrag ist ein bisschen konfus ;)

Helfen wird Dir keiner können, denn Du hast ja noch gar nicht gezeigt, worum es überhaupt geht. Wenn es unterschiedliche Fragen sind, dann erstelle bitte für jede Frage einen eigenen Thread und dann wird Dir - sofern Du mehr Informationen wie z.B. besagte Quelltexte rausrückst - bestimmt auch jemand helfen können :-)

Grüße
Christian

P.S.: Was hat der Titel mit dem Inhalt des Postings zu tun? :gruebel: -> Bitte mal ändern :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
EminePirinc
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.08.08 15:15 
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;



namespace IMW_Test
{
    public partial class Form1 : Form
    {
        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");

            ManagementObjectCollection queryCollection = query.Get();

            foreach (ManagementObject mo in queryCollection)
            {



                ListViewItem lvi = new ListViewItem();
                switch (int.Parse(mo["DriveType"].ToString()))
                {
                    case 3

                        lvi.Text = "HardDisk Drive";
                        lvi.SubItems.Add(mo["Name"].ToString());

                        lvi.SubItems.Add(mo["Size"].ToString());
                        lvi.SubItems.Add(mo["FreeSpace"].ToString());
                        lvi.SubItems.Add(mo["FileSystem"].ToString());


                        listView1.Items.Add(lvi.Clone() as ListViewItem);

                        break;


                    case 4


                        lvi.Text = "Network Drive";
                        lvi.SubItems.Add(mo["Name"].ToString());

                        try
                        {
                            lvi.SubItems.Add(mo["Size"].ToString());
                            lvi.SubItems.Add(mo["FreeSpace"].ToString());
                            lvi.SubItems.Add(mo["FileSystem"].ToString());
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.WriteLine(ex.Message);

                        }

                        listView1.Items.Add(lvi.Clone() as ListViewItem);

                        break;


                    case 5

                        lvi.Text = "CD Drive";
                        lvi.SubItems.Add(mo["Name"].ToString());

                        try
                        {
                            lvi.SubItems.Add(mo["Size"].ToString());
                            lvi.SubItems.Add(mo["FreeSpace"].ToString());
                            lvi.SubItems.Add(mo["FileSystem"].ToString());
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.WriteLine(ex.Message);

                        }

                        listView1.Items.Add(lvi.Clone() as ListViewItem);

                        break;
                }

             
                //Console.WriteLine("Drive: " + mo["Name"].ToString());

            }
        }
    }
}




Ich werde zum ersten Mal in so einem Forum teilnehmen. Ich weiß nicht wo man die Fragen stellen muss. Durch Zufall bin ich hier reingekommen.

Meine frage ist...


Wieso wurde hier ein Object namens ListViewItem erstellt?

Warum switch Anweisung? Warum nicht if oder sonst was anderes?

Wieso hat man hier mit case 3 angefangen?

was bedeutet Parse()?

Was macht diese Zeile --> switch (int.Parse(mo["DriveType"].ToString())) , warum int, und warum wurde DriveType in String umgewandelt und in int.Parse() übergeben?
Was ist DriveType und warum?

Wozu diese Methode Clone() und warum hat man eine Kopie erstellt? --> listView1.Items.Add(lvi.Clone() as ListViewItem);



ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
ListViewItem lvi = new ListViewItem();
                switch (int.Parse(mo["DriveType"].ToString()))
                {
                    case 3

                        lvi.Text = "HardDisk Drive";
                        lvi.SubItems.Add(mo["Name"].ToString());

                        lvi.SubItems.Add(mo["Size"].ToString());
                        lvi.SubItems.Add(mo["FreeSpace"].ToString());
                        lvi.SubItems.Add(mo["FileSystem"].ToString());


                        listView1.Items.Add(lvi.Clone() as ListViewItem);

                        break;


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mo 04.08.08 15:36 
Erstmal willkommen im Forum.
Um deinen Text besser lesbar zu machen solltes du Code-Tags verwenden.
Nun zu deinen Fragen:
user profile iconEminePirinc hat folgendes geschrieben:
Wieso wurde hier ein Object namens ListViewItem erstellt?

Weil ein Listview zur Ausgabe verwendet wird und Daten in einem Listview als Listview-Item verwaltet.
user profile iconEminePirinc hat folgendes geschrieben:
Warum switch Anweisung? Warum nicht if oder sonst was anderes?

natürlich kann man das auch mit if und else lösen, jedoch ist Switch in diesem Fall übersichtlicher.

user profile iconEminePirinc hat folgendes geschrieben:

Wieso hat man hier mit case 3 angefangen?

Da bin ich überfragt, meine Vermutung wäre das 0 / 1 / 2 für Typen von Laufwerken stehen die in diesem Snippet nicht gesucht waren (z.B. Diskette)

user profile iconEminePirinc hat folgendes geschrieben:
was bedeutet Parse()?

Parse das Umwandeln eines strings in den entsprechenden Datentyp z.B.
ausblenden C#-Quelltext
1:
int.Parse(...					

oder
ausblenden C#-Quelltext
1:
double.Parse(...					


user profile iconEminePirinc hat folgendes geschrieben:
Was macht diese Zeile --> switch (int.Parse(mo["DriveType"].ToString())) , warum int, und warum wurde DriveType in String umgewandelt und in int.Parse() übergeben?
Was ist DriveType und warum?

Diese Zeile lässt sich das ManagementObject ''mo'' als string zurückgeben(worin das ergebnis steht) um diesen dann per Parse in eine Integer-Zahl umzuwandeln. Diese Integer wird als Argument für die Switchanweisung verwendet, sodass man also die unterschiedlichen LaufwerksTypen anhand der Zahlen unterscheiden kann.

Zusätzlich gibt es noch ein paar dinge die ich dir empfehlen möchte:
1. Grundlagen lernen 8Open Book oder irgend ein Buch)
2. Suche benutzen
3. MSDN befragen (alle Befehle sind dort erklärt)
EminePirinc
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 05.08.08 09:52 
Ich danke dir Michael