Quelle est la différence entre un code non sécurisé et un code non géré en C #?

Quelle est la différence entre un code non sécurisé et un code non géré en C #?

Le code géré s’exécute sous la supervision du CLR (Common Language Runtime). Ceci est responsable de choses comme la gestion de la mémoire et le ramassage des ordures.

Donc, non géré fonctionne simplement en dehors du contexte du CLR. insalubre est un peu “entre” géré et non géré. Unsafe fonctionne toujours sous le CLR, mais il vous laissera accéder à la mémoire directement via des pointeurs.

Un code non sécurisé en C # permet l’utilisation de pointeurs. Dans le contexte du CLR, il n’y a pas de code non géré en C #.

Le code non sécurisé s’exécute dans le CLR, tandis que le code non géré s’exécute en dehors de celui-ci.

Un exemple de code non sécurisé serait:

unsafe class MyClass { private int * intPtr; } 

Vous pouvez utiliser des pointeurs n’importe où dans cette classe.

Voici un exemple de code non géré:

 class MyClass { [DllImport("someUnmanagedDll.dll")] static extern int UnManagedCodeMethod(ssortingng msg, ssortingng title); public static void Main() { UnManagedCodeMethod("calling unmanaged code", "hi"); } } 

Ce n’est pas nécessairement du code non géré lui-même, mais l’appeler.

Unsafe – Code qui peut être en dehors du sous-ensemble vérifiable de MSIL

Unmanaged – Code non géré par le moteur d’exécution et donc invisible pour le GC (par exemple, une fonction x86 compilée native ne serait pas gérée).

à partir de: http://forums.devx.com/archive/index.php/t-15405.html

Voici ce que vous pouvez faire dans un contexte dangereux.

http://msdn.microsoft.com/en-us/library/aa664769%28v=VS.71%29.aspx