- PR -

VBのWithってC#でどう書くんですか?

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-23 13:43
引用:

R・田中一郎さんの書き込み (2006-02-23 13:19) より:

後者はわかりやすいのですが、暑苦しい感じもしますね。


実際にはそうならないために、ガード句やらがあったりするわけです。
田中さんは以前のスレを見る限り制御構造については全然大丈夫でしょう。

引用:

折角「なりますよね」と同意を求めていただいたのですが、僕は幸いにも、
そのような怖いものに遭遇したことはありません。
Kazukiさんは見てしまったのでしょうか・・・お察しします(T-T)


他人の修正 (特に VB が多いのは偏見ではないと思う) をしているとしょっちゅうですよ。orz
1,000 行に渡る With ステートメント、10,000 行に渡るプロシージャ... orz
その中で For が 3 回ネストした挙句に「To .ROWCNT - 1」とか書かれても... orz

今、新人らに振ってるのが "そういうもの" なので、
「こうやって組んじゃダメだよ」という教育をしています。
実際には追いきれないので、私が修正しているんですが... orz

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-02-23 14:43
R・田中一郎さん:
>最近バグの発見のために「next i」のように書くべきだという意見を聞いたこと
があります。
昔から、言っている人はいましたね。
私は、最初のころ(N88BASIC)はつけてましたが、そのうち無くなりました。
インデントでいいや、と。

じゃんぬねっとさん:
>他人の修正 (特に VB が多いのは偏見ではないと思う) をしているとしょっちゅうですよ。orz
VBはWithもあるし、たしかに多いと思います。
それから、やはりとっつきやすさで入って、深く考えないで書いている人も、多いと思っています。
VBでもきれいなコードは、やっぱりきれいなんですけどね…。

10000行のプロシージャは、さすがにお目にかかったことがありませんが(アセンブラ除く)。

個人的には、ネストは三段になったら「なんとかならんかな」と考え始めます。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-02-23 14:46
引用:

引用:

引用:

VB はアイコンどおり「青い」の言語ですね。


(?_?)よく理解できませんでした。


キーワードが多いので、コードエディタが青くなる言語という意味です。(日本語が変でしたがw)


一方、C#はシンプルなコードが書けるので、
ソースファイルに占めるコードコメントWebレポート用のコメントの比率が大きくなる、
アイコンどおり「緑」の言語ですね。
#などと無理矢理こじつけてみるw

Withは、StringBuilderで使ってますが、それ以外では殆ど使いません。
コード:
[VB.NET]
Dim sbuf As New StringBuilder(128)
With sbuf
    .Append("AAA")
    .Append("BBB")
    .Append("CCC")
End With
[C#]
StringBuilder sbuf = new StringBuilder(128);
sbuf
    .Append("AAA")
    .Append("BBB")
    .Append("CCC");

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-23 22:24
引用:

[C#]
StringBuilder sbuf = new StringBuilder(128);
sbuf
  .Append("AAA")
  .Append("BBB")
  .Append("CCC");


VB は、改行がステートメントの終端子ですが、C# ではただの「空白類」です。これでは

sbuf.Append("AAA").Append("BBB").Append("CCC");

になっちゃいます。そして、そういうことをしたいときと、区別を付けられません。

sbuf.Append("AAA")
  <-Append("BBB")
  <-Append("CCC");

こんな感じ?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-24 01:37
フォローじゃないですが、分かっていて書いていると思いますけどね。
Append().Append() は VB でも良くやりますから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-02-24 01:38
引用:

Jittaさんの書き込み (2006-02-23 22:24) より:
sbuf.Append("AAA").Append("BBB").Append("CCC");
になっちゃいます。そして、そういうことをしたいときと、区別を付けられません。


うーん、多分、「C#でそういう機能が実現されるとしたらこういう文法かな」
という話ではなくて、

VBではWithはこういうとき(StringBuilder使うとき)に使ってる。
C#の場合はこういう書き方でやるけど。

って話だと思いますよ。

スキルアップ/キャリアアップ(JOB@IT)