- - PR -
Text プロパティがプロパティウィンドウに表示されない理由
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-15 11:23
私が勘違いしているかもしれませんが。
フィールドでもプロパティでも protected は「クラスの外」に見えると認識しています。あるいは internal でも同様かと。 http://msdn2.microsoft.com/ja-jp/library/system.reflection.parameterinfo_members(VS.80).aspx 例えば、ParameterInfo のプロテクトフィールドは大文字です。 _________________ 囚人のジレンマな日々 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 11:31
== "PDF で提供されている例のブツ"; ですね。
「共通変数」ではなく「共有変数」です。 C# で言えば static メンバ、VB で言えば Shared メンバのことです。 田中さんの、いわゆる「プロパティ変数」は、インスタンス メンバです。 これには該当しません。
これについては、こうしている方は多いわけで別段問題ないと思います。 究極的には、コーディング規約/標準 なんてものは「統一性」が取れていれば、問題にはならないでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 11:52
"この場合" と書いた理由は「継承チェーン」から見た外という意味です。 Protected だけに関して言えば、その後に投稿した内容 がエビデンスです。 といっても、FCL 作成者を対象としているので、 アクセス修飾子に関することは、若干異なるかもしれません。 それと、一般的には読み取り専用だったりすることが多いので、何とも言えない部分はあります。 ただ、後述の規約でも書かれてますし、使用するのであれば一般的には Camel ではないかと思っています。 逆に囚人さんにお聞きしたいのですが、
の「だったように思いますけども」というのは、どこからの情報ですか? オブジェクトクラブのものでも、28 項に書いてあるように、Camel 形式です。 Pascal 形式なのは静的メンバでもインスタンス メンバでも、アクセス修飾子が public の場合だけのようです。
なんだこりゃ。(^-^;) もしや「情報源」はこれですか? うーん、たとえば「データクラス」の場合、プロパティで明示化する必要がないので、 公開フィールドを使うというのは良くあるのですが、しかしこれは Protected インスタンス フィールド... すみません、納得のいく答えが思い浮かびません。(;_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 12:00
ソースなーし! って言うのは冗談ですが、失念です。 FCL を俯瞰したら見えているものほぼ全て(public、protected、フィールド、プロパティ、メソッド全て)が Pascal 形式である、というのは根拠弱しですかね。^^;
確かに、「大文字の使用スタイル」でもそちらでも、文書ではそのように定義されているようですね。 protected プロパティが Pascal 形式なのは「プロパティであるから」なのでしょうか。 protected プロパティが Pascal 形式なのは「protected であるから」なのでしょうか。 前者であれば、private プロパティも Pascal 形式となります。(private だから何でもいいですが) 後者であれば、protected フィールドも Pascal 形式となります。(先の例 ParameterInfo 然り) すみません、私も納得のいく答えが思い浮かびません。(;_ _) _________________ 囚人のジレンマな日々 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 12:21
まず「プロパティだから」というのは正しいと思います。 大文字の使用スタイル のプロパティを参照 ただし、「protected であるから」が "間違い" という根拠にはなりません。 あくまでも「プロパティだから」というのが正しい理由に入るだけです。 # ところで、先ほどのレスでリンクした資料は 1.1 以前のものであるので、 # MSDN2 のをリンクしないといけませんでしたね...
これは上記からして「なる」と思います。 というより、2.0 からは Getter と Setter でアクセス修飾子が違う例もあるわけで、 アクセス修飾子の公開レベルどうこうより「プロパティだから」という理由でないと納得できないんですよね。 以上 2 点が「私の "中火" の根拠」になります。( ̄- ̄;) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 12:35
新しい方 (MSDN2) でややこしい記述を発見しました。
最後に「Pascal 形式を使用してください」とありますが、 前提条件として、 > フィールドの名前付けガイドラインは、 > 静的なパブリック フィールドとプロテクト フィールドに適用されます となっており、インスタンス フィールドの時、もしくはアクセス修飾子が、 protected internal, internal, private の時のことなど「知らぬ」と申しております。orz _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 13:07
はは、まぁ制限の緩いフィールドを定義すな!というのは同意。制限がキツけりゃご自由にってとこなんですね。
微妙に分かりづらい表現ですね。 「フィールドの名前付けガイドラインは、静的なパブリック フィールドと静的なプロテクト フィールドに適用されます。 」 という意味なんでしょうけど。 _________________ 囚人のジレンマな日々 | ||||||||||||||||||||
|
投稿日時: 2006-03-15 13:48
_propertyName が正しいと思っていたので、一部直しちゃいました。 これは、統一性がないことになりますね。元に戻します。 #なんか、すっきりした。 |