Je suis confus dans AddressOf dans C# et pointeur dans C++? Ai-je raison que Addressof est la gestion de l'exécution et le pointeur est l'exécution d'unmanage ou autre chose?Quelle est la différence entre AddressOf dans C# et pointeur dans C++
Répondre
AddressOf est un opérateur VB et n'existe pas en C#. Il crée un délégué à une procédure. Le délégué peut être utilisé plus tard pour appeler la procédure dans le code qui n'inclut pas le nom de la procédure.
Un pointeur en C/C++ est une représentation d'une adresse en mémoire. Vous pouvez créer un pointeur sur une fonction et l'utiliser pour appeler cette fonction. Dans ce cas particulier, les pointeurs et les délégués se comportent de la même manière. Cependant, les délégués ne sont pas simplement des pointeurs de fonction. La différence la plus importante est que les délégués peuvent être enchaînés et appeler plus d'une procédure à la fois.
L'exemple de MSDN dit plus de l'histoire:
int number;
int* p = &number;
Console.WriteLine("Value pointed to by p: {0}", p->ToString());
Cette attribue l'adresse de la variable numéro du pointeur à un int-p.
Il y a quelques captures à ceci: 1. La variable dont vous récupérez l'adresse doit être initialisée. Ce n'est pas un problème pour les types de valeur, par défaut, mais c'est un problème pour les types de référence.
Dans .NET, les variables peuvent être déplacées en mémoire sans que vous en soyez conscient. Si vous avez besoin de traiter l'adresse d'une variable, vous voulez vraiment utiliser fixed pour épingler la variable en RAM.
& ne peut être appliqué qu'à une variable, pas à une constante ni à une valeur. (En d'autres termes, vous ne pouvez pas utiliser une construction comme int * p = & GetSomeInt();)
Encore une fois, votre code doit être compilé en mode non sécurisé, qui drapeaux du CLR que vous allez utiliser des fonctionnalités en dehors de la gestion code "filet de sécurité".
- 1. Quelle est la différence entre% c et% C dans printf?
- 2. Quelle est la différence entre memset et memcpy dans C
- 3. Quelle est la différence entre C et Embedded C?
- 4. Quelle est la différence entre Visual C++ et C++?
- 5. Quelle est la différence entre "_" et "__" en Objective-C?
- 6. Quelle est la différence \\ \ C:.. Et \\ \ C: \
- 7. addressof-operator dans C#
- 8. Quelle est la différence entre read et readline en C#?
- 9. Quelle est la différence entre system() en C et Perl?
- 10. Quelle est la différence entre Cocoa Touch et Objective C
- 11. Quelle est la différence entre C# Thread.Sleep() et threadreference.Join()?
- 12. Quelle est la différence entre CLR et DLR en C#?
- 13. Quelle est la différence entre Const et Static en C#?
- 14. Quelle est la différence entre 'int?' et 'int' en C#?
- 15. Quelle est la différence entre Process et ProcessStartInfo en C#?
- 16. Quelle est la différence entre un pointeur vide et un pointeur NULL?
- 17. Quelle est la différence entre le flux de fichiers en C et iostream en C++?
- 18. différence entre (int) et Convert.ToInt32 dans C#
- 19. Quelle est la différence entre ces déclarations en C?
- 20. Quelle est la différence entre la signature de la méthode et le sélecteur dans Objective-C?
- 21. Quelle est la différence entre la constante symbolique et la macro dans C?
- 22. VS DataBreakpoints: différence entre C et C++
- 23. quelle est la différence entre:.! et: r !?
- 24. (C++) Quelle est la différence entre ces fonctions d'opérateur surchargées?
- 25. Quelle est la différence entre = et: =
- 26. Quelle est la différence entre l'opérateur (+) et (-) dans la fonction obj c
- 27. Quelle est la différence entre dict() et {}?
- 28. Quelle est la différence entre ces 2 déclarations en c?
- 29. Quelle est la différence entre ces 2 déclarations en c?
- 30. Quelle est la différence entre "$^N" et "$ +"?