- PR -

shared な変数の参照

投稿者投稿内容
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-12-26 14:49
あなたが日本語を母国語にしているなら、
人に対して「あなたは日本語を母国語とされている方でしょうか?」
と聞くのはどんな印象を与えるかわかるでしょう。
差別的な発言と解釈されて当然。

ハンガリアンであれモンゴリアンであれ、
"言葉の解釈の仕方が間違っているのでは"
という指摘をするのに、そんな前置きは明らかな悪意でしょう。


未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-12-26 15:17
引用:

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


ええ、そういう意味で言っているのかも知れないとは考えました。ですから、私は、初回に「それとも識別子自体を分けておけばよい(アプリケーションハンガリアン記法を使えばよい)という主張でしょうか?」とも書いてます。

それに対しても「アプリケーション ハンガリアンは、間違えたコードを間違えて見えるようにする記法である」とか「静的であることを示すのは、アプリケーション ハンガリアンなので」と返してくる人達がいます。このような返答は、アプリケーションハンガリアン記法を拡大解釈しすぎていませんか。

引用:

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


おかしいですね。さきほどの書き込みでは「使ってはどうでしょうか」の前に「○○なので」という理由が書かれていましたよね? なぜ、さきほどまで書かれていた理由を省いてしまったのですか? 私が異議を唱えているのは、その省かれてしまった理由の部分なのですけども。

引用:

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



「ハンガリアン記法を使って区別してはどうでしょうか」なら、私も何も言わなかったでしょう。私は「静的であることを示すのは、アプリケーション ハンガリアンなので」というところに異議があるのです。w私が異議を唱えている部分を後になって引っ込めておいて「やはり勘違いされていますよ」というのは、みっともないとは思いません?

引用:

発言はあなたの意図ではなく、受け取る側の感じ方でかわるものです。


そうですね。私もそう思います。ですから、あなたは「なぜこのような差別的な発言をされているのでしょうか?」と私に問うのではなく「私はあなたの発言を差別的だと感じました。」と書けばよろしい。受け取る側の感じ方だとあなたは考えているはずなのに、なぜ、あの発言が「差別的である」という認識を私と共有できていると思ったのか不思議でなりません。
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-12-26 15:46
だいぶ熱くなっているようですね。

日本語の解釈の仕方に違いがあるようですので、
私はこれ以上の発言を辞めたいと思います。

肝心のJittaさんが回答してくださるでしょうし、
あとは見る方がそれぞれの受け取り方で受け取るでしょう。

それでは失礼いたしました。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-12-26 17:05
○普通の流れ
 私だったらクラス名付けるけど。
  ↓
 なるほど。
  ↓
 私は静的であることを示すのはアプリケーション ハンガリアンを使いますね。
  ↓
 その方法もありますね。
  ↓
 ・・・

○実際の流れ
 私だったらクラス名付けるけど。
  ↓
 なるほど。
  ↓
 私は静的であることを示すのはアプリケーション ハンガリアンを使いますね。
  ↓
 クラス名付けるのはハンガリアンじゃないよ。
 それとも静的な意味を持つハンガリアンを使うって事?
  ↓
 ハンガリアンとはプレフィックス付けたりすることですよ。(リンク)
  ↓
 クラス名とかthis付けるのはハンガリアンとは言わない。
 日本語の読解力ないですね。
  ↓
 いやプレフィックス付けるって意味でハンガリアンて言ってるんでしょ。
 あといきなり読解力ないとか言うのは失礼でしょ。
  ↓
 私もプレフィックス付けるって意味でハンガリアンて言ってると解釈してます。
 でも「静的であることを示すのはアプリケーション ハンガリアン」っておかしい!
 あと別に私は失礼と思わないから別にいいじゃないですか。
  ↓
 以下、重箱の隅。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-12-26 17:35
引用:

  ↓
 ハンガリアンとはプレフィックス付けたりすることですよ。(リンク)
  ↓
 クラス名とかthis付けるのはハンガリアンとは言わない。
 日本語の読解力ないですね。



「リンクだけの書き込み」に対する認識が私と異なっていますね。私は、あのリンクの提示を「ハンガリアンとはプレフィックス付けたりすることですよ。」とは解釈しませんでした。

ただリンクが張られただけの書き込みですけど、そこから読み取れることはいくつかあります。まず、リンク先がページの先頭ではなく「アプリケーションハンガリアン」の項になっていることから、アプリケーションという部分を強調する意図があると感じました。もうひとつは、リンクの見出しがリンク先タイトルの「ハンガリアン記法」ではなく「アプリケーション ハンガリアンは、間違えたコードを間違えて見えるようにする記法である」になっていること。

以上のことから、リンクだけを提示した人は「ハンガリアン記法とアプリケーションハンガリアン記法は異なるものですよ。」「間違えたコードを間違えて見えるようにするのがアプリケーションハンガリアン記法なんですよ。」ということが言いたいのだろうと解釈しました。

そういうわけで、「いやプレフィックス付けるって意味でハンガリアンて言ってるんでしょ。」という意図だとは読めませんでした。そうならそうだとストレートに言えばいいのにねえ。リンクを張って遠まわしに何かを伝えようとしたり、グズグズなことをしておいて、丁寧に説明をしている私に「重箱の隅」とか言うのは間違ってると思いますよ。

あ、それと私は別に熱くなってませんよ。丁寧に対応を続ける忍耐力があると評価して欲しいくらいなんです。
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-12-26 17:45
○普通の流れ
 私だったらドラクエするけど。
  ↓
 なるほど。
  ↓
 私はゲーマーですけどFFをやりますね。
  ↓
 その方法もありますね。
  ↓
 ・・・

○実際の流れ
 私だったらドラクエするけど。
  ↓
 なるほど。
  ↓
 私はゲーマーですけどFFをやりますね。
  ↓
 ゲーマーがするのはFFじゃないよ。
  ↓
 ゲーマーとはゲーム好きな人のことで、僕は任天堂ですよ。(リンク)
  ↓
 ドラクエとかFFするのはゲーマーとは言わない。
 母国語は日本語ですか?
  ↓
 いやゲーム好きって意味でゲーマーて言ってるんでしょ。
 あといきなり読解力ないとか言うのは失礼でしょ。
  ↓
 私もゲーム好きって意味でゲーマーて言ってると解釈してます。
 でも「FFするのはゲーマー」っておかしい!
 あと別に私は失礼と思わないから別にいいじゃないですか。




shared な変数の参照 ・・・
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-26 21:04
引用:

武史さんの書き込み (2008-12-24 10:55) より:
vb .net 2005 のクラスで、shared な変数の参照方法で悩んでいます。

2003 の時は、Me を使って参照できたので、
ローカル変数との区別も見た目でつきやすく、
また、Me. と入れれば、インテリセンスも働くので助かっていました。

しかし、2005 だと、警告が出てしまうので、
Me での参照をやめるようにしているのですが、
ローカル変数との区別がつかないのと、インテリセンスが
使えないので、ちょっと面倒になっています。

なんか、いい方法とかありますか?




「Me での参照をやめるようにしているのですが、ローカル変数との区別がつかないのと、インテリセンスが使えないので、ちょっと面倒になっています。」
に対して、静的メンバーであることを示す接頭辞をつけるアプリケーション ハンガリアンを使ってはどうでしょう?
なんですけど。それと、長いクラス名を付けてしまったので云々とも書かれていましたよね。

いつ、「Me や クラス名で修飾する」話になったのでしょう?
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2008-12-26 21:19
だいぶ、遅れてしまいましたが、みなさまご回答、ご意見ありがとうございます。

一応、まだ説明が不足していたようで、当初の問題に対しての補足ですが、
例えば、次のようなクラスが vb2003 であったとします。

コード:
	Class 一年分のカレンダーを表示するカレンダーダイアログ
		Shared Private 開始年 As Integer
		Shared Private 開始月 As Integer
		Shared Private 開始日 As Date

		Public Sub 開始年月設定
			Me.開始年 = Me.開始日.Year
			Me.開始月 = Me.開始日.Month
		End Sub
	End Class



この中の「開始年月設定」というメソッドでは、
静的なメンバを Me を介して参照していますので、
vb2005 では、警告が出てしまいます。


この Me を、クラス名に置き換えると、

コード:
	Public Sub 開始年月設定
		一年分のカレンダーを表示するカレンダーダイアログ.開始年 = 一年分のカレンダーを表示するカレンダーダイアログ.開始日.Year
		一年分のカレンダーを表示するカレンダーダイアログ.開始月 = 一年分のカレンダーを表示するカレンダーダイアログ.開始日.Month
	End Sub



と、なってしまいます。


こんなケースでは、みなさんならどうしますか?というのをお聞きしたかったのです。




アプリケーションハンガリアンの話も出ていますが、

アプリケーションハンガリアンで解決する方法が分かりませんでした。

s_ とかをつけるんだとしたら、典型的なシステムハンガリアンの一つですよね。

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