Comment jeter de l'Objet en Entier en VB.NET?

Comment dois-je coulés à partir d'un Object à un Integer dans VB.NET?

Quand je fais:

Dim intMyInteger as Integer = TryCast(MyObject, Integer)

il dit:

TryCast opérande doit être de type référence, mais Entier est un type valeur.

Pourquoi pas ça: CInt(Monobjet)
Lire mes commentaires sur l'Abaque de réponse. Cint (ou tout autre conversion appel) a un rôle différent de celui de TryCast/DirectCast. Il est judicieux si vous recevez un numérique type de valeur, par exemple, Simple ou Double, et souhaitez tronquer un nombre Entier. En l'appliquant à l'arrivée d'un Object signifie que vous n'avez aucune idée de ce qui est à venir, et ce travail de conversion sera tentée. À mon humble avis, c'est un pari risqué style de programmation. Faire ce que Jonathan montre, de l'étendre si nécessaire. E. g., si vous voulez pour Analyser une Chaîne de caractères, puis vérifier si il est de type String, puis d'appeler TryParse. Être explicite.
j'espère qu'il finira par être Numérique soutien .Net. E. g. ont tous la valeur numérique à la prise en charge des types une INumeric (ou autre) de l'interface. Étant donné que, au lieu de l'arrivée d'un MyObject As Object on pourrait avoir l'arrivée d'un MyNumber As INumeric. OK, maintenant nous savons "assez" à propos de ce qui est à venir, pour ne CInt(MyNumber), et être sûr que nous savons ce travail sera fait.
De peur qu'on pense que je suis ce qui suggère que les opérateurs de conversion être évité, je parle de les appliquer à Object. Je considère qu'une "odeur de code". Je recommande pas l'utilisation d'opérateurs de conversion jusqu'à ce que vous avez identifié une interface ou une classe de base afin que vous puissiez avoir une certaine idée de ce que vous demandez d'être fait, et ce qui pourrait aller mal. Savoir si vous vous demandez quels sont le traitement de chaîne, ou une troncature numérique, ou simplement "unboxing".

OriginalL'auteur CJ7 | 2012-10-31