- PR -

Text プロパティがプロパティウィンドウに表示されない理由

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-15 11:23
私が勘違いしているかもしれませんが。
引用:

Protected フィールドは、この場合 "外" ではないですね。


フィールドでもプロパティでも protected は「クラスの外」に見えると認識しています。あるいは internal でも同様かと。

http://msdn2.microsoft.com/ja-jp/library/system.reflection.parameterinfo_members(VS.80).aspx
例えば、ParameterInfo のプロテクトフィールドは大文字です。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-15 11:31
引用:

R・田中一郎さんの書き込み (2006-03-15 11:18) より:

C#コーディング標準
(C)Copyright 2002 河端善博
初版 2002年 9月25日

というのを参考にしています。


== "PDF で提供されている例のブツ"; ですね。

引用:

この10頁目にある
「(30)private/protected/internal/protected internalスコープの共通変数」
では「先頭を小文字で」とあります。


「共変数」ではなく「共変数」です。
C# で言えば static メンバ、VB で言えば Shared メンバのことです。

田中さんの、いわゆる「プロパティ変数」は、インスタンス メンバです。
これには該当しません。

引用:

private int _propertyName;
とするのが正しいと思っていたのですけれども。


これについては、こうしている方は多いわけで別段問題ないと思います。
究極的には、コーディング規約/標準 なんてものは「統一性」が取れていれば、問題にはならないでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-15 11:52
引用:

囚人さんの書き込み (2006-03-15 11:23) より:

私が勘違いしているかもしれませんが。

引用:

Protected フィールドは、この場合 "外" ではないですね。


フィールドでもプロパティでも protected は「クラスの外」に見えると認識しています。
あるいは internal でも同様かと。


"この場合" と書いた理由は「継承チェーン」から見た外という意味です。
Protected だけに関して言えば、その後に投稿した内容 がエビデンスです。

といっても、FCL 作成者を対象としているので、
アクセス修飾子に関することは、若干異なるかもしれません。

それと、一般的には読み取り専用だったりすることが多いので、何とも言えない部分はあります。
ただ、後述の規約でも書かれてますし、使用するのであれば一般的には Camel ではないかと思っています。

逆に囚人さんにお聞きしたいのですが、

引用:

引用:

Protected フィールドについては、Camel 形式を使いましょう、になってますけども。


あれ、そうでしたっけ?とにかく外に見えるものは Pascal 形式だったように思いますけども。


の「だったように思いますけども」というのは、どこからの情報ですか?

オブジェクトクラブのものでも、28 項に書いてあるように、Camel 形式です。
Pascal 形式なのは静的メンバでもインスタンス メンバでも、アクセス修飾子が public の場合だけのようです。

引用:

例えば、ParameterInfo のプロテクトフィールドは大文字です。


なんだこりゃ。(^-^;)
もしや「情報源」はこれですか?

うーん、たとえば「データクラス」の場合、プロパティで明示化する必要がないので、
公開フィールドを使うというのは良くあるのですが、しかしこれは Protected インスタンス フィールド...

すみません、納得のいく答えが思い浮かびません。(;_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-15 12:00
引用:

の「だったように思いますけども」というのは、どこからの情報ですか?


ソースなーし!
って言うのは冗談ですが、失念です。
FCL を俯瞰したら見えているものほぼ全て(public、protected、フィールド、プロパティ、メソッド全て)が Pascal 形式である、というのは根拠弱しですかね。^^;

引用:

オブジェクトクラブのものでも、28 項に書いてあるように、Camel 形式です。
Pascal 形式なのは静的メンバでもインスタンス メンバでも、アクセス修飾子が public の場合だけのようです。


確かに、「大文字の使用スタイル」でもそちらでも、文書ではそのように定義されているようですね。

protected プロパティが Pascal 形式なのは「プロパティであるから」なのでしょうか。
protected プロパティが Pascal 形式なのは「protected であるから」なのでしょうか。
前者であれば、private プロパティも Pascal 形式となります。(private だから何でもいいですが)
後者であれば、protected フィールドも Pascal 形式となります。(先の例 ParameterInfo 然り)

すみません、私も納得のいく答えが思い浮かびません。(;_ _)
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-15 12:21
引用:

囚人さんの書き込み (2006-03-15 12:00) より:

protected プロパティが Pascal 形式なのは「プロパティであるから」なのでしょうか。
protected プロパティが Pascal 形式なのは「protected であるから」なのでしょうか。


まず「プロパティだから」というのは正しいと思います。

  大文字の使用スタイル のプロパティを参照

ただし、「protected であるから」が "間違い" という根拠にはなりません。
あくまでも「プロパティだから」というのが正しい理由に入るだけです。

# ところで、先ほどのレスでリンクした資料は 1.1 以前のものであるので、
# MSDN2 のをリンクしないといけませんでしたね...

引用:

前者であれば、private プロパティも Pascal 形式となります。


これは上記からして「なる」と思います。

というより、2.0 からは Getter と Setter でアクセス修飾子が違う例もあるわけで、
アクセス修飾子の公開レベルどうこうより「プロパティだから」という理由でないと納得できないんですよね。

以上 2 点が「私の "中火" の根拠」になります。( ̄- ̄;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-15 12:35
新しい方 (MSDN2) でややこしい記述を発見しました。

引用:

型のメンバの名前 - フィールドの名前 より:

フィールドの名前付けガイドラインは、静的なパブリック フィールドとプロテクト フィールドに適用されます
パブリック インスタンス フィールドやプロテクト インスタンス フィールドは定義しないでください

フィールド名には Pascal 形式を使用してください。


最後に「Pascal 形式を使用してください」とありますが、
前提条件として、

> フィールドの名前付けガイドラインは、
> 静的なパブリック フィールドとプロテクト フィールドに適用されます

となっており、インスタンス フィールドの時、もしくはアクセス修飾子が、
protected internal, internal, private の時のことなど「知らぬ」と申しております。orz

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-15 13:07
引用:

となっており、インスタンス フィールドの時、もしくはアクセス修飾子が、
protected internal, internal, private の時のことなど「知らぬ」と申しております。orz


はは、まぁ制限の緩いフィールドを定義すな!というのは同意。制限がキツけりゃご自由にってとこなんですね。
引用:

フィールドの名前付けガイドラインは、静的なパブリック フィールドとプロテクト フィールドに適用されます。
パブリック インスタンス フィールドやプロテクト インスタンス フィールドは定義しないでください。


微妙に分かりづらい表現ですね。
「フィールドの名前付けガイドラインは、静的なパブリック フィールドと静的なプロテクト フィールドに適用されます。 」
という意味なんでしょうけど。

_________________
囚人のジレンマな日々
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-03-15 13:48
引用:

じゃんぬねっとさんの書き込み (2006-03-15 11:31) より:

これについては、こうしている方は多いわけで別段問題ないと思います。
究極的には、コーディング規約/標準 なんてものは「統一性」が取れていれば、問題にはならないでしょう。



_propertyName が正しいと思っていたので、一部直しちゃいました。
これは、統一性がないことになりますね。元に戻します。

#なんか、すっきりした。

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