C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: C#でDelphiのwithみたいなのはないのでしょうか?


(過去ログ 95 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■56557 / inTopicNo.1)  C#でDelphiのwithみついなのはないのでしょうか?
  
□投稿者/ ロック (1回)-(2011/01/19(Wed) 15:08:30)

分類:[C#] 

使用言語 : Visual Studio 2005 C#

Delphiだとこんな感じで構造体名等を省略できました。

with tData do begin
a:=1;
b:=2:



z:=26;
end;

with使わなければこうです。

tData.a:=1;
tData.b:=2:



tData.z:=26;

とても便利だったんですがC#にはそういう省略して記載する事は無理なのでしょうか?
いくらネットで調べても見つかりませんでした。

ここの1352で、
http://groups.yahoo.co.jp/group/dotnet-csharp/messages/1342?threaded=1&expand=1

結論から言うとC#にはVBのwithに該当するステートメントはありません。
なぜか、と言うのは、以下のURLに書かれています。
http://www.gotdotnet.com/team/ja/team/csharp/learn/columns/ask.aspx

と見つけましたがURL先は見れないのでなぜかは分かりませんでした。
引用返信 編集キー/
■56558 / inTopicNo.2)  Re[1]: C#でDelphiのwithみついなのはないのでしょうか?
□投稿者/ todo (97回)-(2011/01/19(Wed) 15:24:25)
> と見つけましたがURL先は見れないのでなぜかは分かりませんでした。

そういうときに便利なページ
http://www.archive.org/
引用返信 編集キー/
■56559 / inTopicNo.3)  Re[2]: C#でDelphiのwithみついなのはないのでしょうか?
□投稿者/ マサヤ (225回)-(2011/01/19(Wed) 15:44:20)
http://blogs.msdn.com/b/csharpfaq/archive/2004/03/11/why-doesn-t-c-have-vb-net-s-with-operator.aspx
2004年から期待して待ってる人がいるみたいですね。
C#はインデクサを使えということではないでしょうか?
引用返信 編集キー/
■56560 / inTopicNo.4)  Re[1]: C#でDelphiのwithみたいなのはないのでしょうか?
□投稿者/ 魔界の仮面弁士 (2027回)-(2011/01/19(Wed) 16:51:10)
# タイトル変更

No56557 (ロック さん) に返信
> とても便利だったんですがC#にはそういう省略して記載する事は無理なのでしょうか?
VB、JScript、ActionScript、Pascal/Delphi などでは「with」を
利用できますが、C# や C++ にはそういう機能はありません。今のところ。

あれば便利、無くても困らない、という類の物でしょうしね。(いわゆる syntax sugar)

# 今は亡き GDNJ 掲示板で、2004 年頃に
#  GotDotNet Japan 掲示板 > .NET開発 > アドバンスド.NET > .NETのバージョンアップは 速すぎないか?
# のスレッドで、同じように C# に with が必要か否かという話になって、その時に、
# VB の With は良いと思うが、JScript の with だと使いにくいという趣旨の投稿をした事があります。
## Delphi は使ったことが無いので知りませんが、どちらの with の仕様に近いのかな…。


> いくらネットで調べても見つかりませんでした。
関連する話題として。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28521&forum=7

今回の件とは関係無いですが、2006 年当時の C# の言語機能について、
アンダース氏(Pascal/Delphi/C# の設計に携わった人)からのコメントがあります。
http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html

> http://www.gotdotnet.com/team/ja/team/csharp/learn/columns/ask.aspx
> と見つけましたがURL先は見れないのでなぜかは分かりませんでした。
http://web.archive.org/web/*/http://www.gotdotnet.com/team/ja/team/csharp/learn/columns/ask.aspx
からどうぞ。たとえば「Oct 04, 2003」あたり。
引用返信 編集キー/
■56561 / inTopicNo.5)  Re[2]: C#でDelphiのwithみたいなのはないのでしょうか?
□投稿者/ shu (371回)-(2011/01/19(Wed) 17:29:46)
No56560 (魔界の仮面弁士 さん) に返信

> # 今は亡き GDNJ 掲示板で、2004 年頃に
> #  GotDotNet Japan 掲示板 > .NET開発 > アドバンスド.NET > .NETのバージョンアップは 速すぎないか?
> # のスレッドで、同じように C# に with が必要か否かという話になって、その時に、
> # VB の With は良いと思うが、JScript の with だと使いにくいという趣旨の投稿をした事があります。
> ## Delphi は使ったことが無いので知りませんが、どちらの with の仕様に近いのかな…。
その投稿を読んでないので違いが分かりませんが『.』の有無ということでしょうか?
だとするとDelphiは『.』無しなのでJScriptに近いです。
引用返信 編集キー/
■56563 / inTopicNo.6)  Re[3]: C#でDelphiのwithみたいなのはないのでしょうか?
□投稿者/ 魔界の仮面弁士 (2028回)-(2011/01/19(Wed) 21:08:59)
No56561 (shu さん) に返信
>> # VB の With は良いと思うが、JScript の with だと使いにくいという趣旨の投稿をした事があります。
> その投稿を読んでないので違いが分かりませんが『.』の有無ということでしょうか?
文法上の目立った違いとしては、『.』の有無が大きいですね。

http://www.vb-user.com/junk/replySamples/2011.01.19.20.53/with1.txt


> だとするとDelphiは『.』無しなのでJScriptに近いです。
Delphi の with の事は分かりませんが、
VB の With と JScript の with においては、
「.」以外にも幾つかの違いがあります。

たとえば JScript では、静的メンバーもインスタンスメンバーも
呼び出せますが、VB ではインスタンスメンバーしか利用できません。

http://www.vb-user.com/junk/replySamples/2011.01.19.20.53/with2.txt


また、With を入れ子にした場合の解釈の違いもあります。
JScript では、内側のオブジェクトから順に解決しようとするため曖昧さが残りますが、
VB では「.」が付く関係上、常にもっとも内側のオブジェクトのメンバーとして解決されます。

http://www.vb-user.com/junk/replySamples/2011.01.19.20.53/with3.txt
引用返信 編集キー/
■56565 / inTopicNo.7)  Re[4]: C#でDelphiのwithみたいなのはないのでしょうか?
□投稿者/ shu (372回)-(2011/01/19(Wed) 21:55:24)
No56563 (魔界の仮面弁士 さん) に返信

> たとえば JScript では、静的メンバーもインスタンスメンバーも
> 呼び出せますが、VB ではインスタンスメンバーしか利用できません。
>
> http://www.vb-user.com/junk/replySamples/2011.01.19.20.53/with2.txt
これはどっちだったか覚えてません。多分インスタンスからのクラスメソッド呼び出しが出来た
気がするのでこれもJScript側かと思います。



> また、With を入れ子にした場合の解釈の違いもあります。
> JScript では、内側のオブジェクトから順に解決しようとするため曖昧さが残りますが、
> VB では「.」が付く関係上、常にもっとも内側のオブジェクトのメンバーとして解決されます。
>
> http://www.vb-user.com/junk/replySamples/2011.01.19.20.53/with3.txt
これもJScriptと同じだったかと思います。外側でもメソッドが存在すると利用出来た記憶があります。


Delphiをいじったのがかなり前なので記憶が曖昧です。
引用返信 編集キー/
■56574 / inTopicNo.8)  Re[5]: C#でDelphiのwithみたいなのはないのでしょうか?
□投稿者/ ロック (2回)-(2011/01/20(Thu) 13:28:06)
みなさん、さまざまな情報ありがとうございます。

やはりC#でwithは使えないんですね。
あれば便利なんですが、ないならないで確かにプログラム組めますからwithなしで組んでいきます。

紹介されたURL見ると「可読性の面での利点が小さい」というのがありましたが確かにそれは思います。
それとDelphi(Version 2007)ですがデバッグでwithの中を実行している時にマウスを当てても値は表示されないのが結構不便な点でした。
他の言語のwithはどうなのかは分かりませんが・・・

不明点が解決して大変助かりました。
ありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -