Est-il pointeur en C# comme en C++? Est-il sûr?
Je suis en train d'écrire une application qui fonctionne avec un arbre de structure de données. Je l'ai écrit avec C++, maintenant, je veux écrire en C#. J'utilise des pointeurs pour la mise en œuvre de la structure d'arbre de données. Est-il un pointeur en C# aussi? Est-il sécuritaire d'utiliser?
- S'il vous plaît, pourriez-vous d'abord de recherche pour ces mots clés sur soi et de ne poser que les trucs qui ne sont pas encore couverts.
- code avec des pointeurs doivent être marqués "dangereux", devinez pourquoi.
- En fait en utilisant les pointeurs n'est PAS en sécurité n'importe où 😉
- Charmeur - son seulement dangereux si vous ne savez pas ce que vous faites (malheureusement, vous avez pour habitude de travailler avec des gens qui ne savent pas ce qu'ils font)
- C'est un article que j'ai trouvé facile à suivre. c-sharpcorner.com/UploadFile/pcurnow/...
- Quelque chose de pointu est dangereux! 😉 Les pointeurs sont comme des couteaux. Ils sont intrinsèquement dangereux, mais ils PEUVENT être utilisés en toute sécurité. Vous ne devriez pas besoin d'eux en C# mais si vous insistez sur l'utilisation que vous en avez utiliser le "dangereux" mot-clé pour indiquer au compilateur que vous savez ce que vous faites et il est de votre responsabilité exclusive, assurez-vous que la section de code n'est pas mal.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la mise en œuvre d'une structure de l'arbre en C# (ou Java, ou de nombreuses autres langues) que vous souhaitez utiliser des références à la place des pointeurs. NB. les références en C++ ne sont pas les mêmes que ces références.
L'utilisation est similaire à des pointeurs pour la plupart, mais il y a des avantages comme la collecte des ordures.
Points d'intérêt:
*
lors de la déclaration, les membres->
opérateur pour l'accès des membresIDisposable
)OUI. Il y a des pointeurs en C#.
PAS. Ils sont PAS coffre-fort.
Vous avez réellement à utiliser le mot clé
unsafe
lorsque vous utilisez les pointeurs en C#.Pour des exemples look ici et MSDN.
Utiliser ce lieu et le code sera SÛR et PROPRE.Oui, a déclaré à l'aide de la syntaxe
int* varName;
.Pas les pointeurs sont pas sûr.
Il existe des moyens sûrs pour construire une structure de données sans pointeurs. Si les nœuds sont des classes, puis ils vont automatiquement être les types de référence de sorte que vous n'avez pas besoin de pointeurs. Sinon, vous pouvez boîte en référence.
Oui, il est un pointeur:
IntPtr
Wikipédia: "ce qui est sûr géré équivalent à int*, et ne nécessite pas de code unsafe"
Il y a une grande série de Structures de Données mis en œuvre .Net 2 sur MSDN.
Les Structures De Données De La Partie 1
Ils comprennent des exemples de code pour des choses comme les Binaires de Recherche, Arbres, Graphes, SkipList, NodeList, etc. Le code est assez complet, et comprend un certain nombre de pages de docs sur les raisons de ces structures de travail, etc.
Aucun de ceux de Microsoft utilisent des pointeurs. En général, vous n'avez jamais BESOIN de les utiliser en C#. Il ya des moments où leur utilisation serait bien, ou ils sont juste la façon dont vous pensez de C++. Mais vous pouvez généralement trouver un moyen de ne pas les utiliser.
Les plus grandes raisons de ne pas utiliser le code unsafe pour les pointeurs, c'est que vous perdez Confiance Moyenne de la conformité. Vous ne pouvez pas exécuter par le biais de mécanismes comme cliquez une fois, asp.net sites web, et Silverlight ne leur permet pas non plus. Stick avec des refs et entièrement géré concepts afin de garantir votre code peut s'exécuter dans plus d'endroits.