3

新しい Windows Phone 8 アプリを使用しており、電話の連絡先を一覧表示しようとしています。

デバッグ モードでは、メンバー ID (Contact.Id) の横に小さな青いアイコン (拡張機能ではありません) が表示されますが、プログラミング モードではこのメンバーにアクセスできず、A = Contact と入力しても表示されません。 .Id ! であり、Microsoft サイトでそのイベントに関するドキュメントが見つかりません メンバーが見つかりません: microsoft.phone.userdata.contact.id このメンバーのタイプは何ですか?

ID

4

2 に答える 2

3

Id は Contact クラスの非公開/保護/内部プロパティです。これは、Silverlight ランタイムに関しては、アクセスできないメンバーであることを意味します。つまり、実行時にその値を取得することはできません。Contact.Id はあなたの手の届かないところにあります。

Silverlight はアクセス レベルを尊重し、呼び出し元のコードのアクセス レベルのメンバーにのみアクセスできます。たとえば、すべてのクラスは、他のすべてのクラスのすべてのパブリック メンバー (プロパティ、メソッド、イベント、フィールドなど) を呼び出すことができます。別の例として、同じアセンブリ内のクラスのみが、同じアセンブリ内のクラスの内部メンバーを呼び出すことができます。そのアセンブリ外のクラスが内部メンバーにアクセスしようとすると、MemberAccessException が発生します。最後の例として、クラスがプライベート メンバー (プライベート フィールドなど) を宣言する場合、そのクラスのみがそのプライベート メンバーにアクセスできます。別のクラスがクラス内のプライベート値にアクセスしようとすると、MemberAccessException が発生します。

上記は、実行時 (リフレクション) で呼び出されるメンバーと、コンパイル時 (ハードコードされた) で呼び出されるメンバーの両方に当てはまります。

于 2012-12-01T04:16:57.633 に答える