IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
beats.omni
Člen
Avatar
beats.omni:31.3.2015 11:26

Ahoj, mám dotaz ke kódu níže. Je to jednoduchý kód, který získává info o OS a CPU. Můj dotaz zní, zda je napsán správně co se týče OOP. Zda je správné vytvářet instance, které nastaví WMI třídu a následné dotazy na název OS nebo CPU směřuju přímo do metody. Nebo bych ve třídě searcher neměl dělat konstruktor vůbec a pouze napsat metodu s parametry?

class Program
    {
        static void Main(string[] args)
        {
            Searcher srOS = new Searcher("Win32_OperatingSystem");
            Searcher srCPU = new Searcher("Win32_Processor");

            string osJmenoInfo = srOS.ObjectSearcher("Name");
            string osEdiceInfo = srOS.ObjectSearcher("Caption");

            string cpuJmenoInfo = srCPU.ObjectSearcher("Name");
            string cpuMaxSpeedInfo = srCPU.ObjectSearcher("MaxClockSpeed");

            Console.ReadKey();
        }
class Searcher
   {
       public string Vypis { get; private set; }
       private string wmiClass;

       public Searcher(string wmiClass)
       {
           this.wmiClass = wmiClass;
       }

       public string ObjectSearcher(string objekt)
       {
           ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM " + wmiClass);
           foreach (ManagementObject item in mos.Get())
           {
               Vypis = item[objekt].ToString();
           }
           return Vypis;
       }
   }
 
Odpovědět
31.3.2015 11:26
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na beats.omni
Gramli:31.3.2015 19:34

Podle me je to ok, jen pokud promenou vypis nepouzivas jeste nekde jinde, tak je tam celkem zbytecna ne? Mohlo by to byt takto :

public string ObjectSearcher(string objekt)
       {
           string vypis = "";
           ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM " + wmiClass);
           foreach (ManagementObject item in mos.Get())
           {
               vypis = item[objekt].ToString();
           }
           return vypis;
       }
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
31.3.2015 19:34
Kdo to říká ten to je...
Avatar
vodslon
Člen
Avatar
Odpovídá na beats.omni
vodslon:1.4.2015 9:42

Zkus kouknout na třídu ManagementClas https://msdn.microsoft.com/….110%29.aspx

Máto jednodušší zápis a na nevýhody jsem zatím nenarazil, třeba někdo poví ? :)

 
Nahoru Odpovědět
1.4.2015 9:42
Avatar
beats.omni
Člen
Avatar
Odpovídá na vodslon
beats.omni:2.4.2015 21:39

Díky za tip, určitě se na to podívám :-)

 
Nahoru Odpovědět
2.4.2015 21:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.