- - PR -
インスタンスに対する変数型は、本当に、一意に決まるのか?
1|2|3|4|5
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-10 18:05
objectです。
一つだけ、皆さんに確認したい事があります。 #いずれ誰かが確認すると思い、静観していましたが、 #誰も確認しないので、私が確認する事にしました。 「PDC05レポート:動的プログラミング言語へと発展するC# 3.0とVB 9.0」 で、最初のページ 「コンパイラは全能か?」 の最後の箇所
本当に、 「sがStringBuilderであるのは分かり切った事」 なのでしょうか? もし、そうであるなら、 この場合、これは、
と書く可能性は無いと言っているのでしょうか? オブジェクト指向で重要な概念である 「ポリモーフィズム」 は何処へ行ってしまったのでしょうか? [ メッセージ編集済み 編集者: object 編集日時 2006-01-10 18:07 ] | ||||||||||||
|
投稿日時: 2006-01-10 18:41
元記事を書いた人の文章の書き方の問題だと思いますが、
の部分は、「StringBuilder型の変数にStringBuilder型のインスタンスへの参照を代入する事が決まっているときに、何で2回もStringBuilderという文字列を書かなければいけないの?」って言いたいのだと思います。 つまり、
とは別に、
のような省略形が欲しいという事かと思いました。 まあ、本当のところは元記事書いた人にしか分りませんが | ||||||||||||
|
投稿日時: 2006-01-10 18:48
こんにちは。
私も一瞬引っかかりましたが、
↑じゃなくて、
↑でいいじゃん。と書かれてますね。
↑と似たようなものでしょう。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-01-10 18:48
私も「格納したいインスタンスが、宣言型と同一である場合は」だと思います。
確かに省略したくなる衝動に駆られますね。(^^) 特に VB をやった後にそう思うようになりました。 C# では、using が見難くなってしまうので、特にそう思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-01-10 21:42
型AがBインターフェイスとCインターフェイスを実装している場合に、
と、どれでもOKですね。 さらにBインターフェイスを実装した型Xがあったとして、
こんな感じのコードもかけます。 静的に型が決定するオブジェクト指向言語の特徴でしょうね。 型情報の扱い方が柔軟になれば、賢いサポートも可能じゃないでしょうか。 | ||||||||||||
|
投稿日時: 2006-01-11 02:57
あー、確かに下のほうにそんなこと書いてありますね。気づきませんでした……orz C# ver.3.0だと、JavaScriptっぽく変数が宣言できるんですね。 | ||||||||||||
|
投稿日時: 2006-01-11 03:05
というか例が悪い。匿名型と組みあわせて考えたほうがvarの必要性がみえる。
本質は、名前がない型の名前をどうやって指定したらいいか。しかもSQLかいてたら分かるけど、クエリの結果に名前なんて普通ない(だからこその匿名型だけど)。 class{ int Id; string Name;...}みたいに定義を書くという手もあるけど、これを何回も書くのはさすがにアホだし。 | ||||||||||||
|
投稿日時: 2006-01-11 17:45
objectです。
皆さん、レス有難う御座います。 纏めレスで済みません。 =============== >まいるどきゃっとさん
こう書かれている気持ちは、私にも分かります。 しかし、 C系の「()、アドレス、それらの関係の一貫性」 を考えると、そう簡単な話ではないと思います。 それに、確かVS2005では、 タイプの最初の「一字入力」だけで 「インテリセンス」 が働きますから、 「今迄の形式で負担になる事は殆ど無い」 筈です。 もし、 「省略形が欲しい」 のなら、 「省略形が無い事が問題」 であって、 「一般的な表記」がある事が問題では無い筈です。 元記事の表現は、知らない人に、ある意味で 「特殊」を「一般」 と誤解させる可能性があったと思います。 #勿論このスレの目的は、著者を非難する事ではなく、注意を喚起する事です。 #誰でも、表現等を含む間違いを、完全にゼロにするのは不可能ですから。 =============== >囚人さん
ええ、恐らく(1)の為に 「私が問題にした箇所」 も存在するんでしょうね。 そして、私も 「この事を、今後、皆さんと一緒に注目したい」 という主旨でこのスレを起こした訳です。
でも、(1)と(2)では、それが抱える問題が異なって来るのではないでしょうか? 「var」に関しては、未だ情報不足なので、今後を見守りたいと思います。 #ただ、C#は、厳密にタイプで付けされた言語です。 #実は、これによって「同値律」が満足され、 #比較的自由にコーディング出来るんだと思います。 #ハンガリアン記法は、ある意味で、その為の記法だったと思います。 #そして、継承は、この厳密さを保ちつつ、 #一部に多様性を持たせるアイデアだと思います。 =============== >じゃんぬねっとさん >確かに省略したくなる衝動に駆られますね。(^^) >特に VB をやった後にそう思うようになりました。 ええ、私も「VB」の問題もその背景として考えていました。 「VB」は、注意して見守る必要がある言語だと思います。 =============== >yaさん 勿論、 「varの必要性がそれなりにあった」 からこそ、 「C# ver.3.0 に採用されている」 と思います。 ただ、それには 「言語が担っているものと、その構造的な違い」 に目を向ける必要があるんだと思います。 「SQL」もそうですよね。 =============== >ALL 「マイクソロフトの動きを注視する」 切っ掛けになる事を祈っています。 「変だ・可笑しい」と思ったら、 間違いを恐れずに、皆さんと相談したいですね。 *************** #纏める段階で、レスが抜けてしまいました。 #かつのりさん、申し訳ありませんでした。<(_ _)> >かつのりさん 内容的には、補足して頂いている様ですね。 有難う御座いました。 *************** [ メッセージ編集済み 編集者: object 編集日時 2006-01-11 21:17 ] |
1|2|3|4|5
次のページへ»