MS nuoroda:Hipersaito prisijungimas matomas.
Nepastovus raktažodis rodo, kad lauką gali modifikuoti kelios gijos, vykdomos vienu metu. Laukai, paskelbti nepastoviais, nėra ribojami kompiliatoriaus optimizavimu (darant prielaidą, kad juos pasiekia viena gija). Taip užtikrinama, kad laukas visada bus generuojamas su naujausia reikšme.
Nepastovus modifikatorius paprastai naudojamas laukams, kurie pasiekiami keliomis gijomis, bet nenuosekliai nenaudoja prieigos naudojant užrakto sakinį.
Nepastovius raktinius žodžius galima taikyti šių tipų laukams:
- Citatos tipas.
- Žymeklio tipas (nesaugiame kontekste). Atkreipkite dėmesį, kad nors pats žymeklis gali būti kintamas, objektas, į kurį jis nurodo, negali būti keičiamas. Kitaip tariant, "rodyklė į kintantį objektą" negali būti deklaruojama.
- Tokie tipai kaip sbyte, byte, short, ushort, int, uint, char, float ir bool.
- Išvardijimo tipas, turintis vieną iš šių bazinių tipų: baitas, sbytas, trumpas, ushort, int arba uint.
- Bendrojo tipo parametrai, kurie yra žinomi kaip nuorodų tipai.
- IntPtr ir UIntPtr.
Kintamieji raktažodžiai gali būti taikomi tik klasės ar struktūros laukams.Vietiniai kintamieji negali būti paskelbti nepastoviais。
Daugiau jokių nesąmonių, parašykite kilpą, kad ją išbandytumėte:
Išbandykime 10 000 kartų cikle,nustatė, kad reikšmės išvestis yra teisinga, tačiauTai nepaaiškinaLakus yra saugus siūlamsNes jei išbandysite daug kartų, pamatysite, kad bus skaičiavimo klaidų! Nes yra teisingo rezultato tikimybė ir neteisingo rezultato tikimybė
Kodas:
Dar kartą išbandykime 100 000 kilpų ir galime pastebėti, kad a reikšmė yra neteisinga, nes kuo mažesnis kilpų skaičius, tuo mažesnė klaidos tikimybė, o klaida nėra tokia akivaizdi, kaip ir po 10 000 kilpų nebuvo klaidos.
Šiuo metu pridedame užraktą, kad išbandytume, ir galima pastebėti, kad a vertė apskaičiuota teisingai, kaip tikėjomės.
Kodas:
Santrauka: lakus negarantuoja sriegio saugumo, kaip matote aukščiau pateiktame pavyzdyje.
|