none
null coalescing operator (Null結合演算子)って、VBにありますか? RRS feed

  • 質問

  • 毎々お世話になっております。 おぎわらでございます。

    C#2.0では、 ??演算子(null coalescing operator )という便利な演算子が使えるのですが、

    VB2005って、それに該当するものってないのでしたっけ?

    C#でに使用例

    int y = x ?? -1;
    // x が null のとき  yには -1 が代入される
    // その他は y には x が代入される

    Console.WriteLine(s ?? "ヌル");
    // s が null のときは "ヌル" が出力される
    // そのほかは s の値出力

    VBも 1行で書けたら幸せ・・・・

    2006年6月9日 12:05

回答

すべての返信

  • なさげですね。

    The Truth about Nullable Types and VB... http://www.panopticoncentral.net/archive/2004/06/04/1180.aspx

    上のブログの記事はちょっと古いですけど、「The Visual Basic .NET Programming Language (Microsoft Net Development Series) 」の著者というのが、インパクトあります。

    2006年6月9日 13:05
    モデレータ
  •  trapemiya さん情報ありがとうございます~。 

     おぉぉ。(若かりし頃の)ポール・ヴィックさんじゃないですか~。

     (某VSUGのトップページに現在のお姿が)

    なるほど、Blogにそれっぽいことが書いてありますねぇ。
    参考になりました!

    (あれ?解決ボタンはどこ?)

    2006年6月9日 13:23
  • 毎々お世話になっております。ひt... じゃんぬ です。

     おぎわら さんからの引用
    C#2.0では、 ??演算子(null coalescing operator )という便利な演算子が使えるのですが、
    VB2005って、それに該当するものってないのでしたっけ?
    VBも 1行で書けたら幸せ・・・・

    それより、「三項演算子」 の対応を先にして頂きたく。

    というのも、


    x ?? -1;
     

    は、


    x != null ? x : -1;
     

    のように展開されるからです。

    2006年6月9日 13:55
  • というのも、


    x ?? -1;
     

    は、


    x != null ? x : -1;
     

    のように展開されるからです。

    これってどういう意味ですか?
    と同じような意味になる、というような意味でしょうか?

     

    2006年6月11日 12:33
  • 以下のページを見るとだめなようですが、

    各言語の演算子の比較 
    http://msdn2.microsoft.com/ja-jp/library/2hxce09y.aspx

    > x != null ? x : -1;
    これなら IIf(
    IsNot Nothing,x,-1) って言うことになるんでしょうか?
     IIf(x.HasValue(), x, -1)  こっちですね。

    2006年6月11日 14:47
  • 同じ意味ですね~。

    内部でそのように展開されているということのようです。

    またまた手前味噌ですが、以下にまとめてみました。
    [C# 2.0]??演算子(null coalescing operator )
    http://blogs.wankuma.com/ogiogi/archive/2006/06/10/30712.aspx

    ??演算子(null coalescing operator ) は 「Null 合体演算子」というのですね。
    えムナウさんありがとうございます。

    それより、「三項演算子」 の対応を先にして頂きたく。
    深読みすると
    http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=308754&SiteID=7
    ですね。

    これ、早く対応していただかないと、「三項演算子」で検索できないっすね。

    2006年6月11日 17:44
  • あ。
    こんなページがあったとは・・・見逃してました orz...

    ありがとうございます~。

    2006年6月11日 17:48
  • 古い話ですみません、すっかり忘れてました。

    というのも、


    x ?? -1;
     

    は、


    x != null ? x : -1;
     

    のように展開されるからです。

    これってどういう意味ですか?
    と同じような意味になる、というような意味でしょうか?
     

    何が言いたかったかというと、仕様で同じになる(そのように展開される)と決まっているのか、
    単に同じような意味になる、というだけなのか、ということで、どっかに書かれてるのかな?と。

    何でそんな細かいこと気にするかというと、xの評価回数は1回なのか2回なのか、
    てことが知りたかったのでした。
    ※もし評価が2回となると、マルチスレッド環境でうかつに使うと痛い目に…

    で試してみた感じでは、??の方はxの評価は1回のようですね。

    2006年10月14日 17:28