-- Richard Clark http://www.c2i.fr - Le portail .NET [Microsoft MVP .NET] ______________________________________________ 'Au coeur de VB .NET' (MS Press, 430 pages, 34 euros) http://www.amazon.fr/exec/obidos/ASIN/2100065645/c2ifrleportad-21 ______________________________________________
"Eric Guillemette" wrote in message news:
OK, OK, le mot avantage est peut être un peu fort, disons que j'entendais plutôt par là une possibilité de plus. Je vois tout de même un avantage
lors
d'initialisation simple de variables:
x = y = 0;
Mais pour brouiller les pistes un tantinet:
x = 4; ++x += x++ + x;
C'est le genre de ligne de code à écrire lorsque ton patron te dis qu'il
ne
te reste que 2 semaines à travailler ou comme question boni à un examen
LOL
Eric
"c2i" wrote in message news:% > Avantage, avantage, j'en suis pas si sur. > C# permet effectivement d'écrire plein de truc en une seule ligne, a
telle
> point que certaines lignes en deviennent incompréhensibles. > C'est pour cela que je conseille fortement d'éviter, quelque soit le > langage, des "concaténations" excessives. > Ce qui a été confirmé d'ailleurs il y a peu par un dev de l'équipe du > compilateur C#. > > Que vaut, a t'on avis x après: > x=4; > x += x++; > > LOL > > Richard > > "Eric Guillemette" a écrit dans le > message de news: >> Supposons que l'on fait des manupiluations sur des structures >> >> si j'écris x = y, la valeur de "y" sera copiée dans la variable "x" >> >> supposons: >> x = 20 >> y = 30 >> z = 10 >> >> Retirer l'option strict >> >> z = x = y >> >> Dans la variable z, il y aura false, donc 0 car dans la variable z, >> j'affecte le résultat de la comparaison entre x et y. Ce qui me fait > arriver >> à la conclusion que l'opérateur le plus à gauche est celui
d'affectation
> et >> les autres, de comparaison. J'ai lu ça aussi il y a quelques temps dans >> un >> livre, mais je ne me souviens plus lequel. Si je trouve, je t'en ferai > part. >> >> L'avantage de C# à ce niveau permet d'affecter la valeur de y dans > plusieurs >> variables sur une seule ligne de code, c'est probablement ce que l'OP >> essayait de faire, mais c'est impossible en VB.Net (du moins dans les >> version 1.0 et 1.1 du framework, pour la 2.0, je ne sais pas) >> >> C#: >> z = x = y; //y0, x0, z0 >> >> Eric >> >> "Zazar" wrote in message >> news: >> > Bonsoir, >> > >> >> Étant donné qu'en vb.net, l'opérateur de comparaison et celui >> > d'affectation >> >> est le même, la norme est que l'opérateur le plus à gauche est celui >> >> d'affectation et les autres, celui de comparaison. Cela évite les >> > ambiguités >> >> au niveau du compilateur entre les 2 opérateurs. >> > >> > Je pensais que la règle, c'était qu'une affectation ne renvoyait pas
de
>> > valeur et que donc à partir du moment où on utilisait la valeur d'une >> > opération a=b, c'était l'opérateur de comparaison et sinon, c'était >> > l'opérateur d'affectation. Cependant, je n'ai pas réussi à trouver de >> > documentation en faveur de votre version ni de la mienne. Vous
pouvez
>> > confirmer ? (Juste par curiosité, je n'ai pas l'intention d'écrire un >> > compilateur.) >> > >> > -- >> > Zazar >> > >> > >> >> > >
lol, excellent
--
Richard Clark
http://www.c2i.fr - Le portail .NET
[Microsoft MVP .NET]
______________________________________________
'Au coeur de VB .NET' (MS Press, 430 pages, 34 euros)
http://www.amazon.fr/exec/obidos/ASIN/2100065645/c2ifrleportad-21
______________________________________________
"Eric Guillemette" <ericPasDeSpam@jalphaDeleteThis.com> wrote in message
news:egOLUlJpEHA.3592@TK2MSFTNGP14.phx.gbl...
OK, OK, le mot avantage est peut être un peu fort, disons que j'entendais
plutôt par là une possibilité de plus. Je vois tout de même un avantage
lors
d'initialisation simple de variables:
x = y = 0;
Mais pour brouiller les pistes un tantinet:
x = 4;
++x += x++ + x;
C'est le genre de ligne de code à écrire lorsque ton patron te dis qu'il
ne
te reste que 2 semaines à travailler ou comme question boni à un examen
LOL
Eric
"c2i" <rcnospam@c2i.fr> wrote in message
news:%23F8wqZfoEHA.3488@TK2MSFTNGP12.phx.gbl...
> Avantage, avantage, j'en suis pas si sur.
> C# permet effectivement d'écrire plein de truc en une seule ligne, a
telle
> point que certaines lignes en deviennent incompréhensibles.
> C'est pour cela que je conseille fortement d'éviter, quelque soit le
> langage, des "concaténations" excessives.
> Ce qui a été confirmé d'ailleurs il y a peu par un dev de l'équipe du
> compilateur C#.
>
> Que vaut, a t'on avis x après:
> x=4;
> x += x++;
>
> LOL
>
> Richard
>
> "Eric Guillemette" <ericPasDeSpam@jalphaDeleteThis.com> a écrit dans le
> message de news: u8fCo7aoEHA.800@TK2MSFTNGP14.phx.gbl...
>> Supposons que l'on fait des manupiluations sur des structures
>>
>> si j'écris x = y, la valeur de "y" sera copiée dans la variable "x"
>>
>> supposons:
>> x = 20
>> y = 30
>> z = 10
>>
>> Retirer l'option strict
>>
>> z = x = y
>>
>> Dans la variable z, il y aura false, donc 0 car dans la variable z,
>> j'affecte le résultat de la comparaison entre x et y. Ce qui me fait
> arriver
>> à la conclusion que l'opérateur le plus à gauche est celui
d'affectation
> et
>> les autres, de comparaison. J'ai lu ça aussi il y a quelques temps dans
>> un
>> livre, mais je ne me souviens plus lequel. Si je trouve, je t'en ferai
> part.
>>
>> L'avantage de C# à ce niveau permet d'affecter la valeur de y dans
> plusieurs
>> variables sur une seule ligne de code, c'est probablement ce que l'OP
>> essayait de faire, mais c'est impossible en VB.Net (du moins dans les
>> version 1.0 et 1.1 du framework, pour la 2.0, je ne sais pas)
>>
>> C#:
>> z = x = y; //y0, x0, z0
>>
>> Eric
>>
>> "Zazar" <DILAVNI.nicolas.prats@iie.cnam.fr.INVALID> wrote in message
>> news:OJe5PlaoEHA.1576@TK2MSFTNGP12.phx.gbl...
>> > Bonsoir,
>> >
>> >> Étant donné qu'en vb.net, l'opérateur de comparaison et celui
>> > d'affectation
>> >> est le même, la norme est que l'opérateur le plus à gauche est celui
>> >> d'affectation et les autres, celui de comparaison. Cela évite les
>> > ambiguités
>> >> au niveau du compilateur entre les 2 opérateurs.
>> >
>> > Je pensais que la règle, c'était qu'une affectation ne renvoyait pas
de
>> > valeur et que donc à partir du moment où on utilisait la valeur d'une
>> > opération a=b, c'était l'opérateur de comparaison et sinon, c'était
>> > l'opérateur d'affectation. Cependant, je n'ai pas réussi à trouver de
>> > documentation en faveur de votre version ni de la mienne. Vous
pouvez
>> > confirmer ? (Juste par curiosité, je n'ai pas l'intention d'écrire un
>> > compilateur.)
>> >
>> > --
>> > Zazar
>> >
>> >
>>
>>
>
>
-- Richard Clark http://www.c2i.fr - Le portail .NET [Microsoft MVP .NET] ______________________________________________ 'Au coeur de VB .NET' (MS Press, 430 pages, 34 euros) http://www.amazon.fr/exec/obidos/ASIN/2100065645/c2ifrleportad-21 ______________________________________________
"Eric Guillemette" wrote in message news:
OK, OK, le mot avantage est peut être un peu fort, disons que j'entendais plutôt par là une possibilité de plus. Je vois tout de même un avantage
lors
d'initialisation simple de variables:
x = y = 0;
Mais pour brouiller les pistes un tantinet:
x = 4; ++x += x++ + x;
C'est le genre de ligne de code à écrire lorsque ton patron te dis qu'il
ne
te reste que 2 semaines à travailler ou comme question boni à un examen
LOL
Eric
"c2i" wrote in message news:% > Avantage, avantage, j'en suis pas si sur. > C# permet effectivement d'écrire plein de truc en une seule ligne, a
telle
> point que certaines lignes en deviennent incompréhensibles. > C'est pour cela que je conseille fortement d'éviter, quelque soit le > langage, des "concaténations" excessives. > Ce qui a été confirmé d'ailleurs il y a peu par un dev de l'équipe du > compilateur C#. > > Que vaut, a t'on avis x après: > x=4; > x += x++; > > LOL > > Richard > > "Eric Guillemette" a écrit dans le > message de news: >> Supposons que l'on fait des manupiluations sur des structures >> >> si j'écris x = y, la valeur de "y" sera copiée dans la variable "x" >> >> supposons: >> x = 20 >> y = 30 >> z = 10 >> >> Retirer l'option strict >> >> z = x = y >> >> Dans la variable z, il y aura false, donc 0 car dans la variable z, >> j'affecte le résultat de la comparaison entre x et y. Ce qui me fait > arriver >> à la conclusion que l'opérateur le plus à gauche est celui
d'affectation
> et >> les autres, de comparaison. J'ai lu ça aussi il y a quelques temps dans >> un >> livre, mais je ne me souviens plus lequel. Si je trouve, je t'en ferai > part. >> >> L'avantage de C# à ce niveau permet d'affecter la valeur de y dans > plusieurs >> variables sur une seule ligne de code, c'est probablement ce que l'OP >> essayait de faire, mais c'est impossible en VB.Net (du moins dans les >> version 1.0 et 1.1 du framework, pour la 2.0, je ne sais pas) >> >> C#: >> z = x = y; //y0, x0, z0 >> >> Eric >> >> "Zazar" wrote in message >> news: >> > Bonsoir, >> > >> >> Étant donné qu'en vb.net, l'opérateur de comparaison et celui >> > d'affectation >> >> est le même, la norme est que l'opérateur le plus à gauche est celui >> >> d'affectation et les autres, celui de comparaison. Cela évite les >> > ambiguités >> >> au niveau du compilateur entre les 2 opérateurs. >> > >> > Je pensais que la règle, c'était qu'une affectation ne renvoyait pas
de
>> > valeur et que donc à partir du moment où on utilisait la valeur d'une >> > opération a=b, c'était l'opérateur de comparaison et sinon, c'était >> > l'opérateur d'affectation. Cependant, je n'ai pas réussi à trouver de >> > documentation en faveur de votre version ni de la mienne. Vous
pouvez
>> > confirmer ? (Juste par curiosité, je n'ai pas l'intention d'écrire un >> > compilateur.) >> > >> > -- >> > Zazar >> > >> > >> >> > >
Zazar
Bonsoir,
Mais pour brouiller les pistes un tantinet:
x = 4; ++x += x++ + x;
C'est valable dans quel langage ça ? ++x n'étant pas une l-value, l'expression n'est pas correcte. Même en C, c'est interdit.
-- Zazar
Bonsoir,
Mais pour brouiller les pistes un tantinet:
x = 4;
++x += x++ + x;
C'est valable dans quel langage ça ? ++x n'étant pas une l-value,
l'expression n'est pas correcte. Même en C, c'est interdit.