今、仕事で使っている言語はVB.NETです。
新規の製造はほぼゼロで、既存ソースの改造やバグ修正を行っています。
BASICという言語そのものはVB4の頃からやってますし、AccessやExcelのVBAなども含めると、今まで一番長時間接している言語かもしれません。更に遡ればPC-9801のN88-BASICだったり、学校で使っていたFM-7のF-BASICなんていうのもやってましたが、さすがにここまで遡ると今風のBASICとは別物くらいに違いますからね。
そんなBASIC言語ですが、.NETのBasicというのはあまり経験がありません。VB.NETが出た最初の頃に少しやりましたがその後は縁が無く、久しぶりのVB.NETです。
ただ、構文自体は昔のVBとさほど変わりませんし、書くこと自体は問題ありません。.NET Frameworkを使っている事が一番の違いでしょうけど、JavaやJavaScriptに近くなったように感じる部分もあって、違和感はありません。どんな機能があるのかを調べながらやっていかないといけないと言うところはあるんですけどね。
ただ、新規ではなく改造なので、既存のソースを読まなくてはいけません。これが何だかとても読みにくいソースなのです。特に変わったコーディングをやっている訳でもないのですが、(私には)とても読みづらく感じるのです。理由の一つは使っている用語にあまり馴染みが無いので、変数名や関数名に多用されているそれらの用語(の英語)に馴染めていないということがあるとは思いますが、やはりVB.NETそのものの経験が浅いというのは大きな理由なのかもしれません。
そんな中でも、未だにちょっと慣れないのが「Select Case True」という書き方です。
Select文は古いVBやVBAにもありますし、CやJavaなどのswitch文と同じですからSelect文そのものには何の違和感もありません。問題は「True」の部分です。
Select文やswitch文というのは、ある変数の値によって処理を分岐したいときに使われるという認識があります。その「ある変数」の部分が「True」っていうのが「は?」って感じになるんです。
VB.NETのSelect文って結構柔軟性が高いので、素のCのswitch文なんかでは書けないような事でも書けてしまったりします。それは便利なことではあるのですが、「Select Case True」なんて書いてしまうとCaseの条件式は最終的にTrueかFalseを返す式なら何でも書けてしまうため、Select文を使いたい場面から逸脱した使い方をしてしまっていて、それが違和感やわかりにくさになって表れているのだと思いますが……
単に頭が硬いだけなんだろうか?
新規の製造はほぼゼロで、既存ソースの改造やバグ修正を行っています。
BASICという言語そのものはVB4の頃からやってますし、AccessやExcelのVBAなども含めると、今まで一番長時間接している言語かもしれません。更に遡ればPC-9801のN88-BASICだったり、学校で使っていたFM-7のF-BASICなんていうのもやってましたが、さすがにここまで遡ると今風のBASICとは別物くらいに違いますからね。
そんなBASIC言語ですが、.NETのBasicというのはあまり経験がありません。VB.NETが出た最初の頃に少しやりましたがその後は縁が無く、久しぶりのVB.NETです。
ただ、構文自体は昔のVBとさほど変わりませんし、書くこと自体は問題ありません。.NET Frameworkを使っている事が一番の違いでしょうけど、JavaやJavaScriptに近くなったように感じる部分もあって、違和感はありません。どんな機能があるのかを調べながらやっていかないといけないと言うところはあるんですけどね。
ただ、新規ではなく改造なので、既存のソースを読まなくてはいけません。これが何だかとても読みにくいソースなのです。特に変わったコーディングをやっている訳でもないのですが、(私には)とても読みづらく感じるのです。理由の一つは使っている用語にあまり馴染みが無いので、変数名や関数名に多用されているそれらの用語(の英語)に馴染めていないということがあるとは思いますが、やはりVB.NETそのものの経験が浅いというのは大きな理由なのかもしれません。
そんな中でも、未だにちょっと慣れないのが「Select Case True」という書き方です。
Select文は古いVBやVBAにもありますし、CやJavaなどのswitch文と同じですからSelect文そのものには何の違和感もありません。問題は「True」の部分です。
Select文やswitch文というのは、ある変数の値によって処理を分岐したいときに使われるという認識があります。その「ある変数」の部分が「True」っていうのが「は?」って感じになるんです。
どうやら、Caseの条件に単純な値ではなく条件式や関数を呼び出した戻り値を使いたいためにそのような書き方をしているようなのですが、それなら素直にIf文で書いた方が判りやすいと思うのは私だけなんでしょうかね。ElseIfが続くのが嫌だったのか、ネストが深くなることを嫌ったのか。真意は分かりませんが、何か変という違和感が消えないのは確かです。
VB.NETのSelect文って結構柔軟性が高いので、素のCのswitch文なんかでは書けないような事でも書けてしまったりします。それは便利なことではあるのですが、「Select Case True」なんて書いてしまうとCaseの条件式は最終的にTrueかFalseを返す式なら何でも書けてしまうため、Select文を使いたい場面から逸脱した使い方をしてしまっていて、それが違和感やわかりにくさになって表れているのだと思いますが……
単に頭が硬いだけなんだろうか?








































