using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ChildClass cc = new ChildClass();
cc.OtherProperty = 1;
FieldInfo[] fi = cc.GetType().GetFields();
Console.WriteLine(fi.Length);
Console.ReadLine();
}
}
class BaseClass<T>
{
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
}
class ChildClass : BaseClass<ChildClass>
{
private int myVar;
public int OtherProperty
{
get { return myVar; }
set { myVar = value; }
}
}
}
15
A
答えて
53
パラメータなしGetFields()
公開フィールドを返します。あなたは非パブリックなものをしたい場合は、以下を使用します。
cc.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
または適切などんな組み合わせしたい - しかし、あなたはは、それ以外の場合はどちらか見つけることができません、少なくともInstance
の一つとStatic
を指定する必要があります。
cc.GetType().GetFields(BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.NonPublic |
BindingFlags.Public);
10
フィールドがプライベートである場合、BindingFlags.NonPublicを指定できるGetFields()のオーバーロードを使用する必要があります。
は、この仕事をするためにそれを変更するには:あなたはプライベート(非公開)フィールド変更することを指定する必要が
FieldInfo[] fi = cc.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
5
:
FieldInfo[] fi = cc.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
+2
これで、0要素も戻されます。 BindingFlags.NonPublicに加えてBindingFlags.Instanceを含める必要があります。 –
関連する問題
- 1. この配列が空でないのはなぜですか?
- 2. JSon.Net固有のJSonConverterの問題です。空の配列は無視しなければなりません。
- 3. この関数が空の配列を返すのはなぜですか?
- 4. 私はこの配列を有効にすることができますので、javascriptの隠し配列
- 5. 'が空ですか?'空の配列の空の配列に対して 'false'を返します
- 6. この文字配列コードで何が問題になっていますか?
- 7. ActiveRecordここで、Float == Floatが空の配列を返す
- 8. テーブルが空ですが空の配列を返します
- 9. req.paramsが空の配列を返すのはなぜですか?
- 10. マップが空の配列を返すのはなぜですか?
- 11. このphp配列に何が問題なのですか?
- 12. なぜこれが空の文字列を返しますか?
- 13. オブジェクトの配列が空の配列を返しますか?
- 14. このコードはエラーを示しています。このコードで何が問題になっていますか?
- 15. 配列が使用されていなくても、空の配列を定義することは未定義の動作の原因になりますか?
- 16. Angularは2D配列に空の配列を追加しています - ここで/ why?
- 17. 空の配列が何よりも大きいのはなぜですか?
- 18. 私はすべてここに提出された空の
- 19. 私はDrawerLayoutを作成しようとしています。問題は、私はそれをすべてのセットアップを持っている、それが唯一だから私はここで別の質問から、この小さなガイドを盗んだ
- 20. $ .grepは、一致が発生しても空の配列を返します
- 21. UITableViewデータソースの問題。私のデータ配列は突然空です。UITableView:cellForRowAtIndexPath:が呼び出されました。
- 22. ここで何が起こっていますか?空白に配列内の値を変更する
- 23. 関数は空ではなく空の配列を返します。
- 24. この2つの空の配列の配列が異なるのはなぜですか?
- 25. この配列プログラムで何が問題になっていますか?
- 26. このxpathが空のノードセットを返すのはなぜですか?ここで
- 27. count(配列)は1を返しますが、配列は空です。
- 28. このコード行で何が問題になっていますか?なぜそれがここで機能
- 29. どうすればこの配列を取り、1つの配列にすることができますか?
- 30. connectedAccessoriesは空の配列を返しますが、Bluetoothデバイスが
+1これは1つです。インスタンスとNonPublicを指定する必要があります。 –
答えに乾杯!私はそれを理解するのに困っている。誰かが非公開のフィールドのためにNonPublicと共にインスタンスまたはスタティックが必要な理由を説明してもらえますか? – Zack
@ rory.ap:そうです。 –