

configurationmanager.appsettings.haskeysがTrueか判定しているプログラムがありました。
appsettingsでxmlファイルからデータ取得しているようなのですが、haskeysの存在がちょっと解せません。たぶん、ちゃんと取得して格納されているとTrueを返すのかなと想像しているのですが・・・。
で、問題なのですが、MSDNのリファレンスを見ていると、ConfigurationManager.AppSettings プロパティのページでhaskeysの記載がなく、HasKeysのページで、AppSettings の記載がありません。
HasKeysの方は、NameValueCollection.HasKeys メソッドのページを見ていました。
NameValueCollectionにどんなメソッドが使えるのかなど、みなさんはどうやって調べているのでしょうか?現在私はググッてヒットしなければ諦めるし、業務的に諦めれない物は、時間を大量に消費した上で妥協したりしながら、なんとかやってました。
ここを見て、こう理解したら、分かる!のようなアドバイスがありましたらよろしくお願いします。
No.1ベストアンサー
- 回答日時:
の「構文」を読むと
プロパティ値
型 : 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 を調べますよね?
それと同じことです。
回答ありがとうございます。
長い間の謎のままだった事が解決しました。
これまでは、知らなくてもなんとかなっていたのですが、最近そうもいかなくなってきたので、助かりました。
No.2
- 回答日時:
> で、問題なのですが、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 に限らずリファレンスマニュアルを調べる場合には、そのプロパティやメソッドで使用したり返してくる型が何かを見ることも大事です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- 不動産業・賃貸業 賃貸物件にかかる消費税について。 1 2022/08/12 08:08
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- SEO ほぼ同一ページを削除すべき? 1 2022/05/04 09:39
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- PDF PDFファイルを分割するマクロの作り方を教えてください。 2 2022/06/24 11:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MSDNのリファレンスの見方が分...
-
C# using の有効範囲
-
条件によって別のクラスのイン...
-
System.Net.HttpWebRequest、も...
-
内部クラスの処理
-
ダイアログ表示時にチェックボ...
-
VC++ リストボックスにデータを...
-
オブジェクト指向 集約の実装...
-
CMainFrameクラスの使い方
-
イベントにAddHandlerされてい...
-
VB6で作成したDLLをVC6で使用す...
-
フォーム間でのオブジェクト又...
-
VBA チェックボックスをオーバ...
-
スプラッシュコントロールの挿...
-
MenuStripの継承でプロパティが...
-
form1 から form2 へのデータの...
-
CFrameWnd とCFormView2
-
クラス内にWin32APIのコールバ...
-
DataGridViewがクラッシュする
-
コンソールアプリでのクリップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームのVBAエラー
-
VB.NETで、DLLを頂いたんですが...
-
c# ネットワークプログラム
-
excel vba グラフ データラベル...
-
条件によって別のクラスのイン...
-
C# using の有効範囲
-
Eval関数を使いたい!ドキュメ...
-
C#でVB.NETのReplaceコマンドを...
-
C# でフォームやクラスを利用...
-
c# nullは空集合として扱かって...
-
C# フォームのShow()のオーバー...
-
MSDNのリファレンスの見方が分...
-
ConsoleApplicationから別プロ...
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
ダイアログ表示時にチェックボ...
-
エディットコントロールでEnter...
-
(UWSC) 「#32770」の意味わかり...
-
オブジェクト型の変数が定義さ...
おすすめ情報