2022年8月30日火曜日

やっぱり.netはc#なのかも・・って今更感

 今月は.netをずっといじってるけどやはり.netってc#が軸になっているんだなって再確認した

まずは前の記事でも書いたけどラムダ式
c#で=>で表現するところをfunction( ってどうにかならなかったのかなあ
一応書けますよってやっつけ感が半端ないですね

oopしなくてもwinformsアプリぐらいならモジュールとlinqとラムダ式の組み合わせで結構いけると思うんだけどラムダ式のスッキリ感の無さが際立つね

そしてcsxの存在
ちょっとしたコード片を試してみたいときに実に便利
(linqpadってwindowsだけでしょ)

vscode+dotnetでちょこちょこ書いてるときにcsxがあるとやっぱり良い

でもここは適材適所って逃げ文句でvb.netもちょいちょい使いたいね、ね

2022年8月4日木曜日

VB.NETでLinqの是非

vb.netで僕のような万年ビギナの半可通にとって良いなって思えることの1つのはbasicなればこその大文字と小文字の区別を意識しないコーディングが出来るってこと。

当然それは諸刃の刃で定数と同じ綴りの変数とか使っちゃうとハマったりするけど過去に書いた変数がキャメルスタイルだったか全小文字だったか余り気にせずに書くことが出来るのは浮かんだアイディアをガシガシ書きたいときなどにはありがたかったりする。

最近はc#ではもはや中心的機能とも言うべきLinqをvb.netで使いたいと思っている。

しかしc#での自然で素直な構文と比べてvb.netでのあとづけ感は残念、というか冗長

c#で
 Console.writeline(new string(".Test.Command.".Where(c => c!=','),ToArray()));
はvb.netで
 Console.WriteLine(".Test.Command.".Where(function(c) c <>".").ToArray())
となる。いきなりstringをかけるのは良いけどラムダ式の記述がちょっと嫌だ。

c=> c!='.' と function(c) c<>"." はどう見てもc#のほうが見た目が軽くてスマート

これがソース中に何度も出てくると見た目が重くてつらいかも。
もちろんvbのほうがWhereで評価している要素のfilterとして無名の関数を使うよって言ってる感じがしなくもないけど・・・やっぱりc#がスマートでいい感じ

でもLinq便利なのでvbでもできるだけ慣れて使っていこうと思う。

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...