Bagikan melalui


Array MOF

Array adalah daftar nilai data terindeks yang memiliki tipe data yang sama, yang dapat Anda referensikan. Selain string dan array numerik, MOF mendukung array objek dan referensi yang disematkan.

Aturan berikut menentukan array MOF:

  • Tanda kurung siku yang digunakan setelah pengidentifikasi properti menentukan array dalam definisi kelas.

    Class ArrayDataSample1
    {
        string strArray1[];
    };
    
  • Semua array harus satu dimensi.

  • Array dapat tidak terikat atau memiliki ukuran eksplisit.

    Class MyClass
    {
        sint32 MyMethod1 ([in, id(0)] Win32_LogicalDisk DiskArray1[]);
        sint32 MyMethod2 ([in, id(0)] Win32_LogicalDisk DiskArray2[32]);
    };
    

    WMI mengimplementasikan array terikat dan tidak terbatas sebagai struktur SAFEARRAY , yang memungkinkan WMI untuk memvariasikan dimensi array pada durasi. Saat Anda mendeklarasikan array dengan ukuran eksplisit, WMI menyimpan ukuran sebagai kualifikasi, dan memperlakukan ukuran sebagai ukuran maksimum yang disarankan. Namun, WMI dapat memperluas ukuran jika perlu. Mengubah ukuran eksplisit tidak berpengaruh pada data aktual.

  • Array diinisialisasi dengan menentukan nilai jenis yang sesuai dalam daftar yang dipisahkan koma.

    Class ArrayDataSample2
    {
        [key] string s;
        string strArray2[] = {"hello", "there"};
        sint32 dwArray[] = {1,2,3};
    };
    
  • Array referensi dinyatakan sebagai array string jalur objek.

    Saat mendeklarasikan string jalur objek, jangan tempatkan spasi kosong di antara elemen jalur objek. Contoh berikut menjelaskan cara mendeklarasikan referensi jalur objek.

    Class ClassWithRefArray
        { 
        [key] string s; 
        object ref refArray[]; 
        };
    
    instance of ClassWithRefArray
        {
        s = 23;
        refArray = {"Disk.Name=\"C:\"", "Disk.Name=\"E:\""};
        };
    
  • Anda dapat menggunakan array sebagai parameter untuk metode, tetapi bukan sebagai nilai pengembalian untuk parameter input atau input-output.

  • Semua elemen dalam array dibuat sebagai nilai dengan jenis yang sama.

    Jika elemen array adalah dari jenis objek , maka Anda dapat menempatkan segala jenis objek dalam array. Di sisi lain, jika Anda mendeklarasikan jenis objek tertentu, maka WMI hanya mengizinkan objek kelas atau subkelas tersebut dalam array. Contoh berikut menunjukkan deklarasi array yang menyertakan penggunaan jenis objek .

    Class EmbedClass
    {
        [key] sint32 PropOfClass;
    };
    
    Class ArrayDataClass
    {
        [key] string s;
        string strArray1[];
        string strArray2[] = {"hello", "there"};
        sint32 dwArray[] = {1,2,3};
        EmbedClass objArray[];
    };
    
    instance of ArrayDataClass
    { 
        s = "keyStuff";
        strArray1 = { "1.2.3.4", "1.2.3.5", "1.2.3.7"};
        strArray2 = 
            {
                "SELECT * FROM RegistryKeyChangeEvent",
                "SELECT * FROM RegistryValueChangeEvent",
                "SELECT * FROM RegistryTreeChangeEvent"
            };
        dwArray  = { 1,2,3,5,6 };
        objArray = {
                       instance of EmbedClass{PropOfClass=3;},
                       instance of EmbedClass{PropOfClass=4;}
                   };
    };