- - PR -
shared な変数の参照
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-09 22:04
あらホントだ。
と
を勝手に分けて脳内変換しちゃってますね。すいません。 未記入氏の仰るとおりですね。武史氏ごめんなさい。 | ||||||||||||
|
投稿日時: 2009-01-10 10:04
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
| ||||||||||||
|
投稿日時: 2009-01-10 10:08
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
| ||||||||||||
|
投稿日時: 2009-01-11 14:25
http://msdn.microsoft.com/en-us/library/aa260976.aspx ポインタに int を足すのもが誤りかも、そのときによるんでしょうね。 (.NET以前の開発に疎いので詳しい事情は知りませんが)
特に賛成するわけではないですが(というか深く理解してません)こんな記事もあります。 http://www.maroontress.com/Hungarian/ .NETの場合、属性(System.Attributeを継承するもの)がうまく使えたりしないかなぁと思っています。
| ||||||||||||
|
投稿日時: 2009-01-11 23:23
後半部分に異論はありませんが私の中では前半部分と後半部分は文章として繋がりませんね。 未記入さんはJittaさんのその意見は間違っていると指摘されてますし、私も同意見でしたので。
あーなるほど、べるさんやJittaさんは「アプリケーションハンガリアンでもあり、且つシステムハンガリアンでもある」という状態を許容しているのですね。 私はシステムハンガリアンはアプリケーションハンガリアンに対し区別され得るものであろうというのが基本的な考え方としてあったので、ここがずれてたですね。何故そう考えたかというと、もともと「システムハンガリアン」「アプリケーションハンガリアン」という単語自体が区別するために生まれたものだと思ったから。なので、この状態を許容しちゃうと、単語が生まれた目的そのものを否定することになっちゃうのかな、と。 ただし、ここでいう「区別」は「正しいか否か」ではなく、「考案者の意図と異なるか否か」です。 しかし、言語の高級化によって「アプリケーションハンガリアンでもあり、且つシステムハンガリアンでもある」という状態は普通に発生し得るようになっちゃったのかもしれませんね。ある言語で、意味や使用目的を含んだクラス名が在ったとして、その部分を接頭辞に持ってきたら成立しちゃいますもんね。 | ||||||||||||
|
投稿日時: 2009-01-12 11:36
ありがとうございます。モヤモヤがはれました。 「ちがいます」と、強く否定しているわりに、「本当にアプリケーション ハンガリアンって言っていいのか?」と思っていました。 それは、「アプリケーション ハンガリアンだ」とする根拠を、「間違ったコードを間違って見えるようにする」においていたためです。 しかし、これを良く読むと、「間違ったコードを、間違って見えるようにする」ですね。 共有変数とローカル変数の区別がつかなくて困るような状況は、「間違ったコード」ではなく、「間違った設計」と言えるでしょう。 そうすると、「共有変数であることを示す接頭辞を付ける」のは、「間違った設計を間違って見えるようにする」ためであり、「アプリケーション ハンガリアンではない」ということになりました。 | ||||||||||||
|
投稿日時: 2009-01-12 16:56
武史さんは Jitta さんに 1ミリも同意していないと思います。「Jitta 氏も○○という主旨の事をおっしゃっていますし」という発言は、Jitta さんの意見に同意しているということではなく、Jitta さんの発言には根拠・価値がないということを言っているのでしょう。 静的メンバを明示する方法として以下の意見が出ました。 (1)クラス名を付ける方法(別名を付けて短くする方法を含む) (2)ハンガリアン記法(接頭辞を付ける方法) 武史さんは当初から(2)の方法は、システムハンガリアンとなるから使うべきではないと考えていたと思います。しかし、Jitta さんがアプリケーションハンガリアンであると主張し、その根拠をはっきりとさせなかったため、武史さんは(2)の方法を否定しきれず結論を保留していたのでしょう。 結局、Jitta さんの出した答えは、初級者にはアプリケーションハンガリアンだと嘘を教えてもいいんじゃないの? という初級者を見下しているとしか思えないふざけたものでした。このような経緯から推測すると、武史さんの「Jitta 氏も○○という事をおっしゃっていますし」という発言は「Jitta 氏は根拠のない意味不明なことをおっしゃっていますし」という意味になるのでしょう。 「(Jitta 氏は静的メンバにハンガリアン記法を使うことを肯定する根拠を示すことができなかったので、) ここまでの一定の結論としては、静的メンバはクラス名を付けて区別すべきということになるのではないでしょうか。」 武史さんの発言を私はこのように解釈しました。 | ||||||||||||
|
投稿日時: 2009-01-14 13:28
なんか、全体を把握するのが、大変になってきますね。
さて、未記入さん代弁ありがとうございます。 言葉の使い方には、微妙な部分もある気がしますが、おおむね、 未記入さんの解釈どおり、おっしゃるように、Jitta 氏の発言には 未だ同意できていません。 むしろ、Jitta 氏は、まだ接頭辞を付ける事のメリットがある旨の 発言をされているような気がして、理解ができずにいます。 Jitta 氏は、
というのを、
というようにした方が、間違った設計が分かるという利点が あるというようにおっしゃっているような気がしてなりません。 インスタンス変数と静的変数が、どちらも Me とか、this みたいなので、 参照できる言語であれば、s_ をつける意味がある気がしますが、 VB 2005 で、そのようにする意図が理解できませんでした。 他の方々も、"s_" を付けるのも場合によっては、 アプリケーションハンガリアンとして、正しいのではないか、 という主旨の発言をされている方が多い印象だったので、 自分の理解不足もあるのかもしれませんが。 さて、自分の発言に反応してくれた方をスルーしている わけじゃないのですが、(実際、スルーしていますが、、) どうにも書き込みが長く、遅くなりがちなんで、保留していました。 (すでに、十分に長く、遅いですけど) アプリケーションハンガリアンの定義に「属性」という単語を 使った理由とか、アプリケーションハンガリアンに反対の話とかですね。 今にして思うと、掲示板を分けた方がよかった気もしますが、 そろそろこの板も落ち着いてきたし、当初の目的も終わっている気がするので、 この辺りまでですかね。 |