- - PR -
インスタンスに対する変数型は、本当に、一意に決まるのか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-14 14:30
私も型が「先」のスタイルである後者の方が違和感がなくて良いと思います。 VB は型が後のスタイルだから、ああなっているだけですので、VB に合わせる必要はありません。 殆どの場合、宣言型と同じ型のインスタンスが入りますからこれは是非採用して欲しいです。 特に、using への効果が期待できます。
ああ、なんてスッキリなんでしょう。(^ω^*)
Vote してください。(^^) Suggestion Details : 同じ型のインスタンスを宣言と同時に生成する時、型を省略したい 何なら周辺の MVP に Vote を呼びかけるように言おうかな。(^^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-01-14 16:39
StringBuilder s = new();
の件ですが、私は反対に一票です。 実際の型が何かを決定すべきなのは、参照側ではなく、インスタンス側がいいです。 (参照側、インスタンス側とは変な言葉ですが、ここでは C# で TypeName t = new TypeName() と書いたときの、左辺を参照側、右辺をインスタンス側とします。) 参照の使用者は、実際の型が何かは明確に分からなくても使用できるべきです。 器が、コーヒーカップか牛乳瓶かボールなのかは知らないが、液体を入れることは知っている。 器 u1 = new 牛乳瓶(); 器 u2 = new 麦茶入れ(); var は、液体を入れられる事すら分からないので、変な気持ちになるんでしょうか。 よって、反対と書きましたが、一つ制限を加えてもらえれば賛成です。 StringBuilder s = new(); とかけるのは、型 が sealed(NotInheritable) のときのみ。どうでしょう。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-01-14 16:44
StringBuilder s(); でも書けると楽、私の右手の小指が楽。 | ||||||||||||
|
投稿日時: 2006-01-14 16:53
器 u3 = new 器(); のように同一の時だけという意味だったのですが... 派生した型であれば、上記の u1, u2 で書けば良いかなと。 それでも、LINQ のことを考えると微妙かな。(~-~;) 一貫性という意味では現状でもマイナスという意見には賛成。(C# では) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-01-14 17:04
いえ、これは「現C#」のコードを書いただけです^^; 宣言型とインスタンスが同じ型のとき、且つ、型が sealed という制限を設けておくと、過度に使用する機会が減るのではないかと。 ポリモーフィックに書けるのに、new() と書いた事によって云々…とならないように。 もしや var みたいにローカル変数限定とか? _________________ 囚人のジレンマな日々 [ メッセージ編集済み 編集者: 囚人 編集日時 2006-01-14 17:06 ] | ||||||||||||
|
投稿日時: 2006-01-14 17:15
やはり、次期のことを睨んでの発言ですか。 確かに一貫性がなくなるという点では反対です。 そういうレベルだと、var で対応させた方が遥かに良いかも。
個人的には、using ステートメントで欲しいだけですから。(^^;) using が改良されればそれでヨシとも言える... 必要であれば、Product Feedback Center の内容を Edit してください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-01-14 21:09
出遅れましたが、私は、キーボードのタイピング数を少なくするために言語仕様を変えることにはメリットを見出せません。ソースコードは1回だけ入力して、デバッグ時には複数回それを見て解釈することがほとんどですから、見て解釈するときにいかに解釈しやすいかというメリットがあるかどうかで、言語仕様を決めたほうが良いと思います。
したがって、言語仕様は、 StringBuilder s = new StringBuilder(); のままでいいと思います。 IDE が、入力時のインテリセンスを効かせてくれて、また、IDE がソースコードを表示時に、 StringBuilder s = new 左辺と同じ(); か、 右辺と同じ s = new StringBuilder(); みたいに表示してくれれば良いと思います。 | ||||||||||||
|
投稿日時: 2006-01-15 01:58
やっぱり var で回答が来ちゃったか...
using だけ横長 || 改行を防ぐことができれば満足なので、まあいいかな。 ちなみに、私はタイプ数なんてものは気にしていません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |