ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

C#にはVB.NETのStop文に相当するものが無い!

前から知っていたことですが、今回の記事にします。

VB.NETにはStop文というものがあります。
普通のステートメントですから、

Console.WriteLine("Stop!")
Stop 'ここでストップ
Console.ReadLine(True)

という感じで書くことができます。

さて、どういう文なのかと言いますと、Stop文はブレークポイントと同じ事をします。
つまり、Stop文のところで処理が中断されるのです。
デバッグ用ですね。

もちろんVB.NETではブレークポイントを設定することも出来ます。
Stop文を書くのと同じ事です。


しかし、C#にはStop文に相当するステートメントが存在しません。
まぁ、ブレークポイントがあるので困りはしませんけど。

私がC#を始める前はStop文を書きまくっていました。
いちいちコンテキストメニューで、ブレークポイントを挿入するのって面倒くさいじゃないですか。
(当時はショートカットキーなど無いものと見なしていた(笑))

その後C#を始めまして、ある日、いつもの感覚でStopを書いたら
“Stopなんてモンありまへんで”とエラーが出てしまいました。
C#だから小文字かな、と思いstopと書いても駄目でした。

しかし、別のキーワードでStop文に相当するものがあるはずだ、と必死でググりましたが、全くありませんでした。

当時は、「なぜC#にはStop文がないのか」と怒りを覚えたものです。
いちいちブレークポイント入れるの面倒くさいですからね。
(ショートカットキーを覚えていれば…(笑))





しかし、最近気づきました。
Stop文は無いほうが良いです。

Stop文 = ブレークポイントだと考えると、
ブレークポイントを言語として組み込んではいけません。

ブレークポイントはIDEの機能ですからね。

例えば、Stop文を書いたプログラムを単体のexeとして実行すると、どうなるのでしょうか。
実験してみました。

…すると、アプリケーションがフリーズして、よくある「○○は動作を停止しました」メッセージが出ました。

まぁ予想通りですね。
Stop文の正体はアプリケーションをフリーズさせる処理なんだと思います。

つまり、Stop文はコンパイル後のexeまでにも影響を及ぼしてしまうのです。

ブレークポイントなら、exeとは無縁です。
IDEでやったときに止まるだけです。

本来デバッグ機能とはこうであるべきです。

ショートカットキーの便利さに気づいていたら、
当時、怒りを覚えた私もすんなり納得していたかもしれません。

本当、VB.NETを使っていた頃はStop文を書きまくっていましたから…。



Stop文の話だけで随分と長くなってしまいました。
最後まで読んでくれた方、ありがとうございます。

VB.NETでもStop文が無くなると良いですね。

tag:

コメント

…えっと
VBってブレークポイントは止めたい行の左をクリックするだけだったからそんなに困らなかった
それとコンテキストメニューとかstop文知らなかったw

  • 2013/01/26(土) 20:31:26 |
  • URL |
  • まっちゃ #TYxE//as
  • [ 編集 ]

Re: まっちゃ

確かに行の左をクリックしてもブレークポイントを設定することができますね。
ただ、マウスを握るだけで大きな手間なので、私はStopと書いてしまっていたんですよ。

Stop文は使わないほうがいいです。ショートカットキーが一番やりやすいと思います。

System.Diagnostics.Debugger.Break()

  • 2014/02/04(火) 10:01:26 |
  • URL |
  • 表記なし #-
  • [ 編集 ]

Re: 表記なし

ああ、そういう機能もありましたね!
Traceクラスとか。(まぁ、Traceクラスは便利ですけど)

プログラムからも中断できましたね。
まぁ、VB.NETみたいに言語として組み込んでいないだけ良いんですけどね~。

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/228-9b540735
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。