とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

広告っぽい

書庫

日記カテゴリ

リテラルだってオブジェクトなのよ。(追記あります。orz)

ごぶさたしております。とりこびとです♪

めっきりBlogにエントリしなくなってはや幾年。久しぶりに筆をとってみます。

今回はVisual Basic と C# の違いで遊んでみました。

ネタ元はの さんのBlog:VB勉強記録:1のコメント欄でのHIROさんのこれ。

1.ToString()

という書き方もすごく違和感がありましたね。

「数字の後ろにドットって何?」って感じでした。

数値もオブジェクトであるということを理解してはじめて「納得」できたんですが、ここにたどり着くまでに結構いろんなコードを見て入力した記憶があります。

そうそう、数字もオブジェクトなんですよね、だからドットで・・・。


あれ?書けないよ?


Visual Studio 2008 の Visual Basic で試してみました。

1がwwwww



ちなみに C# だとリテラルもそのまま使えるんですね~。

(Visual Basic だと "文字列".ToString() とかは構文エラー。)

っていうか 1.1.ToString() とかすごいわかりずらいww




というわけで、ちょびっとVisual Basic と C# の比較でした~。

[追記]

コメントいただきました内容を確認したところ、Visual Basic でも書けました。。。。

何を勘違いしてたんだろう・・・。ごめんなさいです。

[/追記]

[追記]

久しぶりに書いたらコレだから・・・。orz

[/追記]

投稿日時 : 2009年4月17日 10:05

Feedback

# re: リテラルだってオブジェクトなのよ。 2009/04/17 10:14 aetos

行番号ww テラBASICwww

# re: リテラルだってオブジェクトなのよ。 2009/04/17 10:24 Mr.T

あれれ?

Dim sample As String = "0".ToString()

これ構文エラーにはならないよ?
実行エラーになるってこと?

# re: リテラルだってオブジェクトなのよ。 2009/04/17 10:39 じゃんぬねっと

左辺があれば VB でも可能。
.NET 当初からそんな仕様だったはず。

# re: リテラルだってオブジェクトなのよ。 2009/04/17 11:00 とりこびと

おや?

ちょっと調べなおしてきます。orz

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:22 囚人

逆に、何故左辺が必要なのか興味津々。

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:25 画伯

とりこびっちがオロオロしている様子萌え。

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:43 επιστημη

割鶏焉用牛刀w

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:44 Mr.T

>逆に、何故左辺が必要なのか興味津々。
逆に左辺がないのがよくわからな(ry

console.write(1.toString());

とか?
#確かに左辺じゃないが・・・

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:48 じゃんぬねっと

結果論だけで見ると C# の

> 5.ToString();

は結果を捨てているので、何ら意味がないのだけどビルドが通ります。
こう見ると C# の方が単に不親切なように見えてしまいますが、しかしながら "意味がないか" どうかは呼び出し先のメソッドの実装次第であるので不親切とは言いがたいでしょう。

ちなみに VB でも Call を付ければ左辺がなくてもビルドが通ります。

Call 1.ToString()

Call キーワードは戻り値を得られないと同義で戻り値の式の再評価がされないからでしょう。

# re: リテラルだってオブジェクトなのよ。(追記あります。orz) 2009/04/17 11:56 じゃんぬねっと

> 逆に左辺がないのがよくわからな(ry
> console.write(1.toString());
> とか?

ああ、左辺という言い方は御幣がありましたね。
「戻り値が使用されず、格納されず、式の評価がやりようがない場合」
といったところですかね。

タイトル
名前
Url
コメント