PCだい「ちゅき」

気がつけば庶事手伝い

目次

Blog 利用状況

ニュース

・H24/01/02
 Microsoft MVPを受賞しました
・H23/11/18
 MCTの憂鬱さんと相互リンクを張っていただきました^^
・H23/09/10
 プログラミング生放送でスピーカーさせていただきました^^ ・H22/12/18
 わんくま同盟でスピーカしました^^
さて、来年はどんな年になるかな。予想が当たるといいなぁ。
・H22/07/17
 わんくま同盟でスピーカしました^^
技術系のセッションは久しぶり。VB! VB!
・H22/03/13
 Tech FieldersでLTのスピーカしました^^
・H21/12/12
 わんくま同盟でスピーカしました^^
最近はずっとLT担当だったので、ちょっと新鮮でした^^
・H20/11/18
 Tech Fielders セミナー 大阪の
 Lightning Talkで優勝しました^^
・H20/8/23
 わんくま同盟で2回目のスピーカしちゃいました
 WCFと戯れてみました^^
・H20/5/17
 わんくま同盟でスピーカしちゃいました^^
 ちゃんとスピーカー持参しましたよんw
・H20/2/22
 なめ猫の参加証もらいました^^
・H20/1/22
 テンプレートを変えてみました^^
・H19/7/23
 ACEプログラムで、ナップサックをもらった上、工具セットももらえることになりました^^
・H19/1/11
 1が並ぶ縁起の良い日に投稿開始!。今後ともお付き合いよろしくお願いします
・H18/10/29
 参加させていただきました^^
ド・初心者ですがどうぞよろしくお願いします。

↓うーん、仕事しろ^^;
Chukiの脳内メーター

Chukiの脳内メーター

書庫

日記カテゴリ

ギャラリ

コミュニティ

相互リンク

【VB Love】比較と代入……、イジめんなエラい人^^;

敬愛する東のR・田中一郎師匠のエントリで、コメント内にVB Loveな人々が看過できない一言がw

比較と代入の演算子
http://blogs.wankuma.com/rti/archive/2009/04/20/171723.aspx
 

あえてコメント外しに噛みついてみる^^;

774RR さん>って VB ぜんぜん知らないんだけどこれでおk?>識者

識者じゃないけれど……

 比較と代入が同じ構文に対する嫌がらせですかw
 #このおかげでラムダ式が...orz

Console.WriteLine((j=i)==i);
ということで、そもそも同様のことが書けませんw

【おまけ】
Dim
i = 1
Dim j = 1.0
Dim b = i = j

Console.WriteLine((i = j) = j)
Console.WriteLine(i.GetType().ToString & ":" & i)
Console.WriteLine(j.GetType().ToString & ":" & j)
Console.WriteLine(b.GetType().ToString & ":" & b) 

【実行結果】
False
System.Int32:1
System.Double:1
System.Boolean:True

【おまけ2】
さて、なぜ一行目はFalseなんでしょうorz
さて、なぜ四行目はTrueなんでしょうorz

うぅ><(心の中でVB Loveと叫ぶo...rz)

2009/4/20 16:46 不適切なタイトルを変更

投稿日時 : 2009年4月20日 16:30

Feedback

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 17:38 えムナウ

それで VBer は Equals メソッド が好きなのか。

Object.Equals メソッドのせいで型推論エラーにならないから使うなって言っているのにやたらと使いやがる。
Java屋だけじゃなかったんだ。orz

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 18:11 こくぶん

>おまけ
Dim i = -1
Dim j = -1.0
にすると、
Console.WriteLine((i = j) = j)
がTrueになりますね。 ^^;;

ILで動きを追ってみたんですが、どうやらVBだと比較結果を-1[True]/0[False]で返すみたいです。(C#は1[True]/0[False])
……昔のVBの名残か何かでしょうか?

# 【VB Love】さ、先にやられた!。VBでやっちゃいけないBooleanの数値化 2009/04/20 18:58 PCだいちゅき

【VB Love】さ、先にやられた!。VBでやっちゃいけないBooleanの数値化

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 19:11 ちゅき

えムナウさん>Object.Equals メソッドのせいで型推論エラーにならないから使うなって言っているのにやたらと使いやがる。

確かに^^;
#でも、代入と紛らわしいので使っちゃう^^;。

Stringの比較とかでむしろ奨励した結果、全部が全部^^;
#Javaの変な文化だけをまねた結果かな^^;

# おまけの答え 2009/04/20 20:29 ちゅき

言いっぱはまずいので一応^^;
【1行目】
((i = j) = j)
(i=j) ⇒ true(Boolean)
( true = 1 ) ⇒ ( -1 = 1 )⇒false

【4行目】
b = i = j
⇒ b = (i = j)
⇒ b = true

ですね^^;

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 21:31 よねけん

> それで VBer は Equals メソッド が好きなのか。

純然たるVB使いはEqualsメソッド好きじゃないと思いますよ。
Java文化の悪影響と

http://www.objectclub.jp/community/codingstandard/
のコーディング規約の悪影響じゃないですかね。

# 【VB Love】disられるの覚悟で、szHoge.Equlas も "=" も止めて>< レッツ String.Compare() 2009/04/20 22:18 PCだいちゅき

【VB Love】disられるの覚悟で、szHoge.Equlas も "=" も止めて>< レッツ String.Compare()

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 22:33 ちゅき

よねけんさん>純然たるVB使いはEqualsメソッド好きじゃないと思いますよ。

ですよね^^。
規約がないとVBerは"="使うと思います。
えぇ、もう平気でNothingとも比較しちゃいますよんorz

ご紹介いただいた規約集、イロイロと面白かったっす。ありがとうございました。

# re: 【VB Love】比較と代入……、イジめんなエラい人^^; 2009/04/20 22:50 よねけん

> ご紹介いただいた規約集、イロイロと面白かったっす。ありがとうございました。

あちらのコーディング規約はアップデートされていないため、.NET向けに関しては、今となっては逆に問題がいろいろある部分も多く、最近ではお勧めできないのですよね。
#と他の読者のため念を入れて書いておきます。

# iJMURvhoxrtRIyys 2011/12/13 17:37 http://www.birthcontrolremedy.com/birth-control/ya

The author deserves for the monument:D

# pWJHtAZPFvCCvhifM 2011/12/19 21:29 http://paydayloansnocreditcheck.biz/

Post brought me to think, went to mull over!!...

# PTVPTwgTANJajIEpShy 2022/04/19 13:59 johnanz

http://imrdsoacha.gov.co/silvitra-120mg-qrms

タイトル
名前
Url
コメント