- PR -

shared な変数の参照

投稿者投稿内容
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-12-28 17:40
あーごめんなさい。回答になってないですね。

「静的であることを示すのは、アプリケーション ハンガリアンなので」とかいたのは、Jittaさんの文章をわたしはこのように理解しましたよってことだけです。わたしは前述のとおり、ハンガリアンを使いませんから、特別な意図があって書いたわけではないですし、同意して書いたわけでもないです。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-12-28 19:28
私の質問そんなに難しいですか?

「なので」って because ですよね? because には前提があるはずです。その文章に明示されていない文脈から読みとらなければならない前提はなんですか? と聞いています。明示されている文章からは、because の前提として「静的であることを示すものはすべてアプリケーションハンガリアンである」しか導くことはできません。(これが素直な日本語の解釈です。)

私は、他にも「システムハンガリアンは世間で否定的に捉えられている」という前提に立てば、「(システムハンガリアンではなく)アプリケーションハンガリアンなので」という解釈もできる、と述べました。そして、それを確認したく思いセラフさんに聞いています。

「なので(because)」の前に隠されている文を教えてはもらえないのですか?

引用:

特別な意図があって書いたわけではないですし、同意して書いたわけでもないです。


このようないい加減なことを言い放つ人に期待するだけ無駄だったのかもしれませんね。どうやら、私は時間を無駄にしてしまったようです。今後は、責任持てないことにでしゃばらないように十分、気をつけてくださいね。
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-12-28 21:24
「静的であることを示すものはアプリケーションハンガリアンである」
そのとおりですw何も隠してないです。すべてとはいっていないと思うので、その部分はけずりました。

意見を述べる場ですから、Jittaさんは静的変数を区別することをアプリケーションハンガリアンとらえていることはなんら問題は無いですよね?

その上で、未記入さんがJittaさんの文の解釈の第一解釈として、
引用:

ハンガリアン記法って、型や用途などの付加情報を接頭辞や接尾辞として識別子(変数名)に折り込むという手法ではないですか?

クラス名を付けてクラス変数であることを明示したり、this(VB.NETだとMe?)を付けて、インスタンス変数であることを明示することは、ハンガリアン記法ではないと思います。



と発言されていますので、「ThisやMeは、ハンガリアン記法じゃないですよね?」と受け取り、第二解釈として、

引用:

それとも、クラス変数、インスタンス変数、ローカル変数は、(大文字で表記したりアンダーバーを付けたりして)識別子自体を分けておけばよい(アプリケーションハンガリアン記法を使えばよい)という主張でしょうか?



と発言されていますので、「クラス変数、インスタンス変数、ローカル変数をアプリケーションハンガリアンで区別することでしょうか?」っと受け取ったので、どちらも解釈間違ってるなっと思い、

引用:

Jittaさんが書いてるのは、
「静的であることを示すのは、アプリケーション ハンガリアンなのでハンガリアン記法を使って区別してはどうでしょうか」
って解釈が普通だと思いますが・・・



っと発言しました。

引用:

そうですね。私もそういう意味だと解釈しました。そのうえで、「静的であることを示すのは、アプリケーション ハンガリアン」であるということに異議を唱えています。

ハンガリアン記法で、クラス変数に特別な接頭辞を付けることで「静的であること」を示すことはできます。でもね。クラス名を付けて(つまり別の手法で)「静的であること」を示した場合はハンガリアン記法とは言わないんです。識別子に細工をしているわけじゃないんですから。



の発言で、「クラス変数、インスタンス変数、ローカル変数をアプリケーションハンガリアンで区別することでしょうか?」という最初の発言から突然「静的であることを示すのは、アプリケーション ハンガリアンなのでハンガリアン記法を使って区別してはどうでしょうか」 というのは認識していたことになっちゃいました。また、その下の文では、「クラス名を付けるなどの手法で「静的であること」示す場合はハンガリアン記法とは言わないんです。」っとおしゃっていますから、

引用:

ThisやMe、クラス名を先頭につけるのではなく、静的であるという意味の接頭語を設けて変数名として使ってはどうでしょうかとおしゃっているのですよ。



と回答しました。以上です。その後の返答で会話が成り立たない人だと思ったので、回答をやめました。時間を無駄にさせてしまってごめんなさい。

今日は日曜日ということで、利用者も少ないだろうと無駄な書き込みをだいぶ行いました。いつもこの掲示板を見ていただいている皆様、システム開発における質問をするための本掲示板におきまして、心苦しい言い争いに発展してしまったことをこの場を借りて謝罪するとともに、普段からこういった事例にも根気よく回答してくださっている諸先輩方へも、賛辞を送りたいと思います。

このたびはご迷惑をおかけして本当に申し訳ありませんでした。

本件に関する書き込みはこの書き込みを最後とさせていただきます。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-12-28 23:44
引用:

突然「静的であることを示すのは、アプリケーション ハンガリアンなのでハンガリアン記法を使って区別してはどうでしょうか」 というのは(未記入が)認識していたことになっちゃいました。


ありえません。私が「なので」という部分に疑問があるということは何度も言っていますよね?その私が「なので」を含む文章を認識していた、ということにしてしまうあなたの思考は、もう、脳味噌が腐っているとしか表現のしようがありません。ほんと、残念なことですけど。

セラフさんに日本語を解釈する十分な能力がないこと、自分の発言について他人に説明する能力がないことが良く分かりました。「なので」の前提について説明してくれなかったこと、「システムハンガリアンではなくアプリケーションハンガリアンなので」という解釈をしていたのかという問いに肯定も否定もしてくれなかったことが残念です。忍耐強い私もいい加減に、あなたの発言の意図を聞き出すことを諦めることにします。
アウ
ベテラン
会議室デビュー日: 2008/12/18
投稿数: 72
投稿日時: 2008-12-29 16:07
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-30 23:00
引用:

未記入さんの書き込み (2008-12-28 19:28) より:
私の質問そんなに難しいですか?



はい、難しいです。言葉尻をとらえて、読み手によっては不快に思う言葉で責める人のように思いますので。何を求めて質問しているのか、裏を考えてしまいます。

ハンガリアン:
最大限好意的に解釈していただいた意図で書きました。
本当は、最大限好意的に解釈していただいたことを、ほぼそのまま書くつもりでいたのですが、もしかして shared キーワードを理解せずに使っているのではないか?という疑問がわき、それに対してどう答えるか、考えているうちに面倒になって「ハンガリアン」だけ。が、「システム ハンガリアンは非推奨では?」という言葉があるかもしれないと、「静的であることを示すのはアプリケーション ハンガリアン」を追加しておきました。

Shared:
インスタンス間で共通の、ただ一つの値を持つ変数となります。このため、あるインスタンスAでは、たとえば「開始年月日」を2005年1月1日としておきたいのに、別のインスタンスBのために2008年1月1日に変えてしまうと、Aでも2008年1月1日になってしまいます。ダイアログなので、一時に1枚しか表示されませんが、ダイアログ フォームのインスタンス(OpenDialog で開いたとき)は Close メソッドをコールしても Dispose は呼ばれないため、使い回しができます。使い回しを行うときに、問題になるかもしれません。
もちろん、毎回 ShowDialog する直前で設定していれば問題にはなりません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-12-31 01:08
引用:

Jittaさんの書き込み (2008-12-30 23:00) より:

Shared:
インスタンス間で共通の、ただ一つの値を持つ変数となります。このため、あるインスタンスAでは、たとえば「開始年月日」を2005年1月1日としておきたいのに、別のインスタンスBのために2008年1月1日に変えてしまうと、Aでも2008年1月1日になってしまいます。ダイアログなので、一時に1枚しか表示されませんが、ダイアログ フォームのインスタンス(OpenDialog で開いたとき)


ShowDialog?

引用:

は Close メソッドをコールしても Dispose は呼ばれないため、使い回しができます。使い回しを行うときに、問題になるかもしれません。
もちろん、毎回 ShowDialog する直前で設定していれば問題にはなりません。


これはどういう意味なのでしょうか? 共有メンバ (C# では静的メンバ) はインスタンスの Dispose メソッドとは何ら関係がないので、Dispose メソッドが呼ばれないことによって問題になるという発想はおかしいと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-12-31 14:23
引用:

最大限好意的に解釈していただいた意図で書きました。
本当は、最大限好意的に解釈していただいたことを、ほぼそのまま書くつもりでいたのです


最初の書き込みの意図について明確に回答してくれたことを嬉しく思います。ようやく納得することができました。ありがとうございます。

引用:

はい、難しいです。言葉尻をとらえて、読み手によっては不快に思う言葉で責める人のように思いますので。何を求めて質問しているのか、裏を考えてしまいます。


それは私の質問を勝手に難しくしているだけですね。私には裏(別の意図)などありません。いつでも、率直・ストレートに発言しているつもりです。もし、裏があると思うのなら、そのときは、私に対して応答しなければ(無視すれば)よいのですよ。質問に対する答えをはぐらかしたまま応答するから、再び、私に追求(質問)されることになるのです。それで、責められているように感じるのでしょうね。自業自得。勝手に裏読みして、回答をはぐらかし続けるから、日本語読解能力がないとか脳味噌が腐っていると罵られてしまうのです。

セラフさん他数名の方が Jitta さんの発言の解釈について私に説明をしてくれましたが、いずれも「ハンガリアンを使ってはどうか?」という誰でも分かるような部分だけを説明して得意顔になっていたように思います。もし誰かが「システムハンガリアンではなく」ということだと指摘してくれていたのなら、私もその時点で、なるほど、確かにそのように解釈することができますね、と納得していたことでしょう。べるさんの書き込みもそのような意図はなかったと見ています。もし、そのような指摘の意図があればリンクの見出しとして(リンク先の文章の一部である)「システムハンガリアンは現在批判されることが多く、.NET Framework では使われていない。」などを選ぶほうが自然でしょう。

そのような説明を誰もできなかったことから、(投稿者は)だれも Jitta さんの発言を正しく解釈できていなかった、ということになると思います。Jitta さんはそう思いませんか? もし、他の人たちが正しい解釈をできていないと感じていたのなら、今回、説明してくれたようなことを 2回目で書いて欲しかったです。

引用:

「システム ハンガリアンは非推奨では?」という言葉があるかもしれないと、


気持ちは分かります。頻繁に書き込みができないようなときは、反応をある程度予測して対応を書いておきたいこともあります。今回は Jitta さんの発言まではハンガリアン記法の話題にはなっていませんし、当然、システムハンガリアンに否定的な意見があるという流れにもなっていません。この流れでカウンターを当てておくのなら、システムハンガリアンが非推奨であることは絶対に省略してはいけない部分だったと思います。これは Jitta さんが今後の反応を予測したのであって、他の読み手がいままでの流れから読み取れるような内容ではないからです。

引用:

考えているうちに面倒になって


考えるのが面倒だからといって意味不明な投稿をされると、あなたが楽をした分だけ、多くの読み手に負担がかかるということを理解してください。考えるのが面倒になったのなら送信ボタンを押すのをやめるという選択肢もあなたには残されています。今後は、ぜひ、送信ボタンを押さないという選択をしていただきたいと思います。

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