2010-09-30 10 views

Répondre

2

Ce dernier est invalide. Vous pouvez utiliser

value as int? 

si vous avez besoin de "convertir si possible". C'est plus lent que

if (value is int) 
{ 
    int x = (int) value; 
    ... 
} 

cependant. C'est ce que vous devriez probablement utiliser si vous n'êtes pas sûr que value est réellement un int. Toutefois, si votre code est telle que si value n'est pas un int, qui représente un bug, puis juste jeter inconditionnellement:

int x = (int) value; 

Si cela échoue, il lancera une exception - qui est généralement approprié pour une punaise.

0

I value as int provoque une erreur de compilation car operator must be used with a reference type or nullable type ('int' is a non-nullable value type). Donc, quand vous travaillez avec des structures, vous utilisez toujours (int)value et avec des objets, je préfère obj as SomeType parce que c'est plus clair et plus droit au but, en plus il gère les exceptions automatiquement (si une erreur survient lors de la conversion, l'opérateur retourne null).

+0

Non exception, il s'agit d'une erreur de compilation. – leppie

+0

Oui, vous avez raison, j'ai juste oublié le terme correct, été en Java et Obj-C trop longtemps :) –

Questions connexes