cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 20 févr. 2009 à 08:09
Oui je suis d'accord.
Tu fais un mini tuto la-dessus? En gros, un résumé du tout, ça pourrait être pas mal :)
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 20 févr. 2009 à 06:59
Merci pour le lien Bidou,
Par contre, l'auteur prétends que le compilateur fait une erreur, alors que comme chez moi, un des commentaires dit le contraire (et j'ai les options activées).$
Le dernier commentaire tente une explication basée sur les structures, mais pas convaincante pour moi. Le fait d'écrire
Public i as Integer
et que i prenne la valeur par défaut, soit 0, ne me pose pas de problème.
Par contre,
Public i as Integer = Nothing
est à mon avis une aberration syntaxique.
J'ai trouvé un autre post :
http://blog.somecreativity.com/2008/04/16/on-assigning-null-to-value-types-in-vbnet/ où l'auteur présente ceci sous un autre angle, mais en conclue également que "la sémantique VB.Net est à cet égard un peu cassée".
A mon avis, il faudrait au minimum avoir une option du compilateur qui permette de générer une erreur avec ce genre de code, même si certains préféreront peut-être conserver cette syntaxe.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 févr. 2009 à 15:45
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 19 févr. 2009 à 15:39
C'est vrai que c'est étrange :D Je ne connais pas assez VB pour répondre...
Par contre, pour une source ça fait vraiment maigre!
Je te propose de le mettre comme tutorial avec une explication et des exemples une fois que la solution a été trouvé. Ca me paraît plus intéressant...
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 19 févr. 2009 à 13:26
Que c'est la même classe du framework.
Pour ton 2ème et ton 3ème message, je sais que
Dim i as Nullable(Of Integer) = Nothing
Fonctionne et compile.
Ce que je n'accepte pas c'est que
Dim i as Integer = Nothing
compile aussi. Pour moi, le compilateur devrait donner une erreur si on essaye d'assigner Nothing à une variable "value type".
hugstoo
Messages postés6Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention19 février 2009 19 févr. 2009 à 13:08
int en C# est équivalent à Integer en VB?
équivalent c'est à dire?
hugstoo
Messages postés6Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention19 février 2009 19 févr. 2009 à 13:07
Qu'est ce que tu entends par équivalent?
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 19 févr. 2009 à 12:01
De plus si c'était réellement un objet, sa valeur serait nulle, et pas 0.
hugstoo
Messages postés6Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention19 février 2009 19 févr. 2009 à 11:45
essaye avec:
Dim i as Nullable(Of Integer) = Nothing
hugstoo
Messages postés6Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention19 février 2009 19 févr. 2009 à 11:43
la valeur par défaut d'un Integer est 0...
hugstoo
Messages postés6Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention19 février 2009 19 févr. 2009 à 11:27
bonjour,
c'est très simple:
la variable i dans ton code VB est de type Integer.
=>Il s'agit d'un type objet.
la variable i dans ton code C# est de type int.
=>Il s'agit d'un type primitif.
Il ne s'agit pas d'un BUG, mais d'un concept objet
20 févr. 2009 à 08:09
Tu fais un mini tuto la-dessus? En gros, un résumé du tout, ça pourrait être pas mal :)
20 févr. 2009 à 06:59
Par contre, l'auteur prétends que le compilateur fait une erreur, alors que comme chez moi, un des commentaires dit le contraire (et j'ai les options activées).$
Le dernier commentaire tente une explication basée sur les structures, mais pas convaincante pour moi. Le fait d'écrire
Public i as Integer
et que i prenne la valeur par défaut, soit 0, ne me pose pas de problème.
Par contre,
Public i as Integer = Nothing
est à mon avis une aberration syntaxique.
J'ai trouvé un autre post :
http://blog.somecreativity.com/2008/04/16/on-assigning-null-to-value-types-in-vbnet/
où l'auteur présente ceci sous un autre angle, mais en conclue également que "la sémantique VB.Net est à cet égard un peu cassée".
A mon avis, il faudrait au minimum avoir une option du compilateur qui permette de générer une erreur avec ce genre de code, même si certains préféreront peut-être conserver cette syntaxe.
19 févr. 2009 à 15:45
(lire les commentaires)
19 févr. 2009 à 15:39
Par contre, pour une source ça fait vraiment maigre!
Je te propose de le mettre comme tutorial avec une explication et des exemples une fois que la solution a été trouvé. Ca me paraît plus intéressant...
19 févr. 2009 à 13:26
Pour ton 2ème et ton 3ème message, je sais que
Dim i as Nullable(Of Integer) = Nothing
Fonctionne et compile.
Ce que je n'accepte pas c'est que
Dim i as Integer = Nothing
compile aussi. Pour moi, le compilateur devrait donner une erreur si on essaye d'assigner Nothing à une variable "value type".
19 févr. 2009 à 13:08
équivalent c'est à dire?
19 févr. 2009 à 13:07
19 févr. 2009 à 12:01
Integer est l'équivalent c# de int, et c'est un type primitif : http://msdn.microsoft.com/en-us/library/aa711900.aspx
De plus si c'était réellement un objet, sa valeur serait nulle, et pas 0.
19 févr. 2009 à 11:45
Dim i as Nullable(Of Integer) = Nothing
19 févr. 2009 à 11:43
19 févr. 2009 à 11:27
c'est très simple:
la variable i dans ton code VB est de type Integer.
=>Il s'agit d'un type objet.
la variable i dans ton code C# est de type int.
=>Il s'agit d'un type primitif.
Il ne s'agit pas d'un BUG, mais d'un concept objet