アプリ版:「スタンプのみでお礼する」機能のリリースについて

configurationmanager.appsettings.haskeysがTrueか判定しているプログラムがありました。
appsettingsでxmlファイルからデータ取得しているようなのですが、haskeysの存在がちょっと解せません。たぶん、ちゃんと取得して格納されているとTrueを返すのかなと想像しているのですが・・・。

で、問題なのですが、MSDNのリファレンスを見ていると、ConfigurationManager.AppSettings プロパティのページでhaskeysの記載がなく、HasKeysのページで、AppSettings の記載がありません。

HasKeysの方は、NameValueCollection.HasKeys メソッドのページを見ていました。
NameValueCollectionにどんなメソッドが使えるのかなど、みなさんはどうやって調べているのでしょうか?現在私はググッてヒットしなければ諦めるし、業務的に諦めれない物は、時間を大量に消費した上で妥協したりしながら、なんとかやってました。

ここを見て、こう理解したら、分かる!のようなアドバイスがありましたらよろしくお願いします。

A 回答 (2件)

https://msdn.microsoft.com/ja-jp/library/system. …

の「構文」を読むと

プロパティ値
型 : System.Collections.Specialized.NameValueCollection
現在のアプリケーションの既定構成の、AppSettingsSection オブジェクトの内容を格納する NameValueCollection オブジェクトを返します。

と書いてあります。
ですから、
configurationmanager.appsettings.haskeys

「 configurationmanager.appsettings の型」 .haskeys

NameValueCollection の HasKeys
だということがわかりまます。

NameValueCollectionにどんなメンバーがあるかは
https://msdn.microsoft.com/ja-jp/library/system. …
を見れば書いてあります。


a.b.c.d 等となっている場合でも
a の型を調べる: 例えばclassAだったとする
→ classA.b メンバの型を調べる : classBとする
→ classB.cメンバ の型を調べる
....
と順番に調べていきます。



例えば。
TextBox には、 Enabled と Visible があります。
両方とも Boolean 型です。
このとき Enabled.XXX とか Visible.XXX とかを調べようと思ったら、 Boolean.XXX を調べますよね?
それと同じことです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
長い間の謎のままだった事が解決しました。
これまでは、知らなくてもなんとかなっていたのですが、最近そうもいかなくなってきたので、助かりました。

お礼日時:2015/05/27 22:09

> で、問題なのですが、MSDNのリファレンスを見ていると、ConfigurationManager.AppSettings プロパティのページでhaskeysの記載がなく、HasKeysのページで、AppSettings の記載がありません。


1 個間を挟みましょう。

ConfigurationManager.AppSettings プロパティのページに「構文」節があって、以下の記述があると思います。

型 : System.Collections.Specialized.NameValueCollection

つまり、このプロパティは System.Collections.Specialized.NameValueCollection という型であると明記されています。丁寧なことにその型のページへのリンク付きで。
そして、そのリンク先のページのメソッド節に HasKeys のページへのリンクが存在します。それをクリックすればいいのですよ。

なぜ互いのページに相手の記述が無いかというと、MSDN の利用者は AppSettings プロパティに対して必ず HasKeys を使うわけではなく、HasKeys (というか NameValueCollection 型)は AppSettings 専用ではないからです。
AppSettings でどんな操作ができるかを知りたいならばそのプロパティの型でどんな操作ができるかがわかればいいのです。だから AppSettings のページではどんな操作ができるは記述せずただその型を記述し、それ以外の、どんな値が入っているかを主に記述しているのです。
一方、NameValueCollection 型はアプリケーションの設定に限らず「この文字列に対してこの文字列が対応している、という対応が複数ある」という場面で広く使われています。そのような状況で AppSettings に関する記述だけを書くわけには行きません。かといって、この型を使用しているすべてのプロパティやメソッドについてすべてを記述したならばこの型のページは数倍に膨れ上がり、かつ、それはそのページを訪れた人にとってほとんどが無意味な情報になります(たとえばあなたの場合、AppSettings 以外のどのプロパティが NameValueCollection 型かなんてどうでもいい事ですよね?)。だから NameValueCollection 型のページにはこの型がどこで使われているかは記述していないのです。

何か長文になってしまいましたが、MSDN に限らずリファレンスマニュアルを調べる場合には、そのプロパティやメソッドで使用したり返してくる型が何かを見ることも大事です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
MSDNが、なぜあのような形で情報掲載してるのか、分かりやすかったです。

お礼日時:2015/05/27 22:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!