Question

Je l'ai lu beaucoup de non nullables questions et réponses . Il semble que la meilleure façon de se rapprocher de types non-nullables en C # (4.0) est de Jon Skeet nonnullable <> hack.

Cependant, il semble que C ++ / CLI a résolu une grande partie du problème en soutenant les références gérées: Foo% (au lieu de C ++ natif Foo&). Le compilateur fait ce travail en ajoutant modreq(IsImplicitlyDereferenced) à l'argument. Essayer d'appeler une telle fonction de C # dans les résultats:

'<FunctionName>' is not supported by the language

Y at-il quelque chose de mieux nonnullable <>

Y at-il moyen de (raisonnablement -. I.e., w / o en utilisant la réflexion) appeler une méthode C ++ / CLI Foo::Method(Bar%) de C #

?

[modifier] Il semble qu'il n'y a actuellement rien de mieux que nonnullable <> ... Je souhaite que je l'aurais obtenu quelques commentaires sur les choses C ++ / CLI comme a déjà au moins une solution partielle.

Était-ce utile?

La solution

J'ai rencontré à quelques reprises ... Je n'ai pas encore trouver quelque chose de mieux que la solution de Skeet. Il est résolu tous les cas, j'ai rencontré, donc je dois donner mon vote.

Je suis d'accord, il est un peu une situation hacky que nous devons recourir à ... mais sa solution ne résout le problème.

Autres conseils

Oui, spec #: http://research.microsoft.com/en -USA / projets / specsharp /

- Edit: Je viens de remarquer que vous avez dit C # 4.0; Je suis assez sûr Spec # ne prend pas en charge cette version. Néanmoins, il est vaut un examen.

Vous pouvez également être en mesure (je pense) de vérifier à un stade un peu plus tard, puis compiler, par une règle Gendarme: http://www.mono-project.com/Gendarme (en supposant que va à l'encontre 4,0)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top