在C#中,如果使用代表派生類的類型Type.GetFields(),它將返回a)派生類中所有顯式聲明的字段,b)派生類中自動屬性的所有後備字段以及c)所有顯式聲明的字段在基類中。 爲什麼缺少基類中自動屬性的d)後臺字段? 實施例: public class Base {
public int Foo { get; set; }
}
public class Derived : Bas
有什麼辦法來強制我的課程的其餘部分訪問屬性設置器而不是支持字段?考慮以下笨拙的代碼: public class Brittle
{
private string _somethingWorthProtecting;
public string SomethingWorthProtecting
{
get { return _somethingWorthP
我知道使用自動屬性時,編譯器會在屏幕後面創建自己的後臺字段。然而,在許多程序中,我讀了,我看到人們學會明確寫入 private int _backingField;
public int Property { get { return _backingField; } }
是什麼區別上方與下方? public int Property { get; private set; }
我的理
我有一個簡單的POCO類,例如 class C {
[MyAtrib]
public int i {get; set;}
[MyAtrib]
public int i2;
}
當我打電話: GetType().GetFields(
BindingFlags.Public | BindingFlags.NonPublic | BindingFla
我想組織這樣簡單的屬性: private int foo;
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
我一直在玩弄StyleCop,並罵我的構造函數後放置領域。這種風格是否被普遍接受,只要該領域從未在財產之外被引