Taula de continguts:
Definició: què significa insegur?
Unsafe és una paraula clau de llenguatge de programació C (C #) utilitzada per a denominar una secció de codi que no és gestionada pel Common Language Runtime (CLR) del .NET Framework o codi no gestionat. No segur es fa servir a la declaració d’un tipus o membre o per especificar el codi de bloc. Quan s'utilitza per especificar un mètode, el context de tot el mètode no és segur.
El codi no segur proporciona una bona interoperabilitat amb interfícies de programació d’aplicacions (API) o trucades del sistema que no són gestionades i serveix d’interfície compatible per a biblioteques d’enllaços dinàmics (DLL) de tercers, que requereixen indicadors per passar el paràmetre. També es pot utilitzar un codi no segur durant la depuració, quan el contingut del procés requereix inspecció o anàlisi.
Techopedia explica No segur
Les dades no segures es refereixen a dades de memòria assignades que no són controlades pel CLR, com ara les nanses o els punters de Windows assignats mitjançant un nou mètode.
El codi no segur fa referència a una declaració o mètode que accedeix a la memòria no gestionada, inclosos:
- Trucades a les API de Windows
- Trucades a components d’interfície del mètode Component Object Model (COM) que impliquen estructures amb apunts o codi crític de rendiment.
El codi no segur s'utilitza principalment quan les operacions impliquen apunts i, generalment, quan el codi s'executa fora del context gestionat. La compilació de codis no segurs requereix especificació de l’opció "/ insegur" amb l’ordre de compilació.
En entorns plenament de confiança, CLR és necessari per a l’execució de codi no segur. Tot i això, CLR no verifica el codi no segur. CLR admet el codi no segur per proporcionar accés directe al codi de memòria no gestionat, de vegades preferit per raons de rendiment.
Com que CLR manté seguretat i seguretat de tipus, C # no admet l'aritmètica de punter en codi gestionat, a diferència de C / C ++. La paraula clau no segura permet l'ús del punter en codi no gestionat. Tanmateix, la seguretat no està garantida perquè no es compleixen normes estrictes d’accés a objectes. Per exemple, les capacitats d’operació de punter no estan proporcionades a Java Runtime Environment (JRE).
El codi no segur pot crear problemes d'estabilitat i seguretat, a causa de la seva inactiva sintaxi complexa i el potencial d'errors relacionats amb la memòria, com ara el desbordament de piles, l'accés i la sobreescriptura de la memòria del sistema. La cura addicional dels desenvolupadors és primordial per evitar possibles errors o riscos de seguretat.