- PR -

VBでのNULL判定の書き方

投票結果総投票数:105
Not o Is Nothing 69 65.71%
o Is Nothing = False 13 12.38%
Not IsNothing(o) 12 11.43%
IsNothing(o) = False 11 10.48%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-02-16 16:54
引用:

僕は、if 分の条件文は () で括る癖があるので、実際には
if (not (obj Is Nothing)) then
と書きます。


私の場合、当初はNot (〜)、今は括弧はつけてません。

昔こんなのがあったな。。。
Call ABC(1) - Integer渡しになる
Call ABC((1)) - Boolean渡しになる
これに気づいて以来、括弧をちょっぴり意識するようになりました。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-02-16 16:58
引用:

まどかさんの書き込み (2006-02-16 16:47) より:

ところで、今回のようにBoolean値で肯定否定の意味を持つ単語に対して= True(False)は書きますか?
私は嫌いです。(^^;
#評価式ってのを理解してないという印象があったりします。
#例えば、If -1 Then を見せると「何じゃこれ?」という人たち。




ということは、こういうのもアリな訳でしょうか?
ちょっとビックリです。

コード:


dim フラグ as Boolean

if (フラグ = True) then
  messagebox.show("フラグはたってますよ")
else
  messagebox.show("フラグがたっていない状態は何ていうの?")
end if





引用:

まどかさんの書き込み (2006-02-16 16:54) より:

昔こんなのがあったな。。。
Call ABC(1) - Integer渡しになる
Call ABC((1)) - Boolean渡しになる
これに気づいて以来、括弧をちょっぴり意識するようになりました。



よく読むと納得ですが、2度びっくりです。


[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-02-16 17:02 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-16 17:02
引用:

R・田中一郎さんの書き込み (2006-02-16 16:58) より:

ということは、こういうのもアリな訳でしょうか?
ちょっとビックリです。


評価式の結果は Boolean なので当然でしょう。
その結果 If True = True Then と書いているようなものってことですね。

私は、C# では書きませんが VB では書いてますね。

  ファイルの存在を確認する

Not の時は False を使うようにしています。
いや、これが VB 流なんだと思ってまして...w

ただ、オブジェクト比較演算子 Is の場合は付けないんですよね。(今思えば変かも)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-02-16 17:09
引用:

じゃんぬねっとさんの書き込み (2006-02-16 17:02) より:

評価式の結果は Boolean なので当然でしょう。
その結果 If True = True Then と書いているようなものってことですね。

私は、C# では書きませんが VB では書いてますね。

  ファイルの存在を確認する

Not の時は False を使うようにしています。
いや、これが VB 流なんだと思ってまして...w

ただ、オブジェクト比較演算子 Is の場合は付けないんですよね。(今思えば変かも)




Basic でも、True False は明示しないと思いますけど、こういう書き方が用意され
ていると言うことは、これを付けないと読めない人がいるからかも知れませんね。

#それにしても C# はすっきり書けていいですね。僕も C# にしようかな。
#でも今まで作った VB2005 の資産はどうなるんだろう。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-02-16 17:12
引用:

ということは、こういうのもアリな訳でしょうか?
ちょっとビックリです。
コード:
dim フラグ as Boolean
if (フラグ = True) then




あ、いえいえ「私は書きません」という意味でした。

肯定否定が区別のつくものと限定しましたが、
逆にそういう名前を付けない人が多いという別の問題に発展していきますね。。。(--;
#内輪の話ですが。。。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-02-16 19:48
引用:

まどかさんの書き込み (2006-02-16 16:47) より:
好みどころか最初のしか浮かばない。。。(汗

ところで、今回のようにBoolean値で肯定否定の意味を持つ単語に対して= True(False)は書きますか?
私は嫌いです。(^^;


私もあんまり使いませんが、典型的なA型の人間に見られる傾向として

コード:

If System.IO.File.Exists("file1.txt") And _
   Not System.IO.File.Exists("file2.txt") Then
より
If System.IO.File.Exists("file1.txt") = True And _
   System.IO.File.Exists("file2.txt") = False Then
の方がびたっとそろってていい感じ♪


みたいな(笑)

引用:

#評価式ってのを理解してないという印象があったりします。
#例えば、If -1 Then を見せると「何じゃこれ?」という人たち。


言語によりますよね。
VB.NETで If -1 Then を見せられたら、私も「何じゃこれ?」といいますよ。
#それ以前にOption Strict Onにしたらビルド通りませんし。

例えばC言語だと「ビット列として見た時0か0以外か」という考え方ですが、
.NETなら「Boolean型のTrueかFalseか」という考え方になるので、
上記のコードは型を意識してないという印象になります。
#逆に、内部でビット列としてどんな形になってるかは全然意識してません…
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-18 15:25
オブジェクト比較演算子でない、通常の比較判定の場合は、
前否定の Not か、後否定の False かで、もう少し分かれそうですね。
C 出身者は Not を使う方が多いでしょうけど...

良い例としては、IsPostBack プロパティでの判定かな?

VB ならではネタだと、あとは配列の () の位置とか。

コード:

    Dim items   As Item()
    Dim items() As Item


私は C にならって前者ですね。

インスタンス生成時の () とか。

コード:

    Dim inst As New Instance()
    Dim inst As New Instance


これも C (C#) にならって前者が好きですね。
コードの再フォーマットのチェックは外しています。

VB ならではネタは多いですね... (;_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-02-19 01:24
引用:

コード:
    Dim items   As Item()
    Dim items() As Item


私は C にならって前者ですね。

コード:
    Dim inst As New Instance()
    Dim inst() As New Instance


これも C (C#) にならって前者が好きですね。


私は「変数(名)は配列である」という意味から後者が第一印象としてはよい感じです。。。

引用:

VB ならではネタは多いですね... (;_ _)


汗かく必要はないぞぉ〜!

スキルアップ/キャリアアップ(JOB@IT)