Acasă Dezvoltare Ce este nesigur? - definiție din techopedia

Ce este nesigur? - definiție din techopedia

Cuprins:

Anonim

Definiție - Ce înseamnă nesigur?

Unsafe este un cuvânt cheie de programare C (C #) utilizat pentru a denumi o secțiune de cod care nu este gestionată de Common Language Runtime (CLR) din .NET Framework sau codul neadministrat. Nesigur este utilizat în declarația unui tip sau membru sau pentru a specifica codul de bloc. Când este utilizat pentru a specifica o metodă, contextul întregii metode este nesigur.


Codul nesigur asigură o bună interoperabilitate cu interfețe de programare a aplicațiilor (API) sau apeluri de sistem neadministrate și servește ca o interfață compatibilă pentru bibliotecile de legături dinamice terțe (DLL), care necesită indicatoare pentru trecerea parametrilor. Codul nesigur poate fi, de asemenea, utilizat în timpul depanării, atunci când conținutul procesului necesită inspecție sau analiză.

Techopedia explică nesigur

Datele nesigure se referă la datele de memorie alocate care nu sunt controlate de CLR, cum ar fi mânerele Windows sau indicatoarele alocate printr-o nouă metodă.


Codul nesigur se referă la o declarație sau o metodă care accesează memoria neadministrată, inclusiv:

  • Apeluri la API-urile Windows
  • Apelează la componente de metodă Component Object Model (COM) care implică structuri cu indicatoare sau cod critic de performanță.

Codul nesigur este utilizat în primul rând atunci când operațiunile implică indicatoare și, în general, când codul este executat în afara contextului gestionat. Compilarea codurilor nesigure necesită specificarea opțiunii "/ nesigur" cu comanda de compilare.


În medii pe deplin de încredere, CLR este necesar pentru executarea codului nesigur. Cu toate acestea, CLR nu verifică codul nesigur. CLR acceptă codul nesigur pentru a oferi acces direct la codul de memorie neadministrat, care este uneori preferat din motive de performanță.


Deoarece CLR menține siguranța și securitatea tipului, C # nu acceptă aritmetica indicatoare în codul gestionat, spre deosebire de C / C ++. Cuvântul cheie nesigur permite utilizarea pointerului în coduri neadministrate. Cu toate acestea, siguranța nu este garantată, deoarece normele stricte de acces la obiecte nu sunt respectate. De exemplu, funcțiile de funcționare a indicatorilor nu sunt furnizate în Java Runtime Environment (JRE).


Codul nesigur poate crea probleme de stabilitate și securitate, datorită sintaxei sale complexe și potențialului erorilor legate de memorie, cum ar fi revărsarea stivei, accesarea și suprascrierea memoriei sistemului. Îngrijirea suplimentară a dezvoltatorilor este esențială pentru evitarea erorilor potențiale sau a riscurilor de securitate.

Această definiție a fost scrisă în contextul C #
Ce este nesigur? - definiție din techopedia