|
|
|
|
PRATIQUE TECHNOS .NET |
|
|
|
Utiliser des pointeurs en C# |
|
Les pointeurs autorisent parfois des acrobaties périlleuses, mais nécessaires dans certains cas. C# les oblitère généralement, tout en permettant de passer outre sa gestion implicite de la mémoire.
(30/08/2005) |
|
À
l'instar de Java, C# n'est pas censé proposer aux développeurs
d'utiliser les pointeurs au sein de leurs programmes. Les pointeurs
sont gérés de manière implicite par le langage, afin de parer
à toute mauvaise gestion de la mémoire, cause fréquente d'erreur
pour les programmes C/C++ par exemple.
Lorsque le besoin se fait sentir, il est cependant possible
de force C# à accepter l'utilisation de pointeurs. Les instructions
en question doivent alors être fermement surveillée, et donc
le bloc conteneur doit afficher l'attribut "unsafe".
Cette appellation n'est pas innocente : il est possible dans
un bloc unsafe de lancer des traitements tout aussi pernicieux
qu'en C/C++.
using System;
class CodePointeurs {
public static Main() {
int Entier = 10;
int* pEntier = &Entier;
Console.WriteLine("Adresse
de la variable : " + (int)pEntier);
Console.WriteLine("Contenu
de l'adresse : " + *pEntier);
}
}
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
L'exemple est trivial, mais être mesure de sortie du code managé
de C#, et accéder directement à la mémoire, peut dans certains
cas se révéler salvateur. Les précautions d'usage sont bien
entendu à prendre... |
|
|
|
|
|