Si l'on pouvait placer un tableau de pointeurs sur les structures enfants dans des structures dangereuses en C# comme on le ferait en C, construire des structures de données complexes sans avoir un objet par nœud serait beaucoup plus facile et moins rapide. ainsi que syntaxiquement plus propre et beaucoup plus lisible.Quelle est la raison sous-jacente pour ne pas être en mesure de mettre des tableaux de pointeurs dans des structures dangereuses en C#?
Existe-t-il une raison architecturale profonde pour laquelle les tableaux fixes à l'intérieur de structures dangereuses ne peuvent être composés que de «types de valeur» et non de pointeurs? Je suppose que seuls les pointeurs explicitement nommés à l'intérieur des structs doivent être une décision délibérée d'affaiblir le langage, mais je ne trouve aucune documentation expliquant pourquoi c'est le cas, ou le raisonnement pour ne pas autoriser les tableaux de pointeurs dans les structures, car je supposerait que le ramasse-miettes ne devrait pas se préoccuper de ce qui se passe dans les structures marquées comme dangereuses. Digital Mars 'D gère élégamment les structures et les pointeurs en comparaison, et il me manque de ne pas pouvoir développer rapidement des structures de données succinctes; en faisant des références abstraites en C#, beaucoup de pouvoir semble avoir été retiré du langage, même si les pointeurs sont toujours là au moins dans un sens marketing. Peut-être que je me trompe à l'idée que les langues soient plus puissantes pour représenter efficacement des structures de données complexes au fil du temps.
Qu'est-ce profileur recommandez-vous? – cons
Cela ne peut pas être la raison, puisque vous pouvez très bien utiliser des pointeurs vers d'autres structures dangereuses dans des structures non sécurisées (il n'y a aucun problème pour créer une structure arborescente binaire ...) La restriction s'applique uniquement aux tableaux dans des structures non sécurisées tampons de taille), et la raison pour cela n'est pas évident à mon avis (Voir ma réponse pour une explication possible) – MartinStettner
@cons: Voir cette question: http://stackoverflow.com/questions/3927/ –