2011-07-19 25 views
3

我有一個有幾個成員和屬性的類,當我創建該類時,如何知道在創建時實例化名稱是什麼?當我創建它時,如何確定類的實例化名稱

我有一個PDInt類,所以我將它作爲一個成員實例化,然後將該成員包裝在一個屬性中。這裏是類和後跟屬性:

public class PDInt : PDBase 
{ 
    #region Members 

    int m_Value; 
    public int Value 
    { 
     get 
     { 
      return m_Value; 
     } 
     set 
     { 
      if (m_Value != value) 
      { 

      } 
     } 
    } 

    #endregion 

    public PDInt() 
    { 
     this.Init(); 
    } 

    public PDInt(int Value) 
    { 
     this.Init(); 
     this.Value = Value; 
    } 

    public PDInt(int Value, string ControlName) 
    { 
     this.Init(); 

     this.Value  = Value; 
     this.ControlName = ControlName; 
    } 

    private void Init() 
    { 
     this.Value = 0; 
    } 

    public void Map(int Value, string ControlName) 
    { 
     this.Value  = Value; 
     this.ControlName = ControlName; 
     this.Validate = true; 
    } 

    public void Map(int Value, string ControlName, bool Validate) 
    { 
     this.Value  = Value; 
     this.ControlName = ControlName; 
     this.Validate = Validate; 
    } 
} 

這裏是成員,然後在財產使用

 PDInt m_PrescriptionID; 
    public PDInt PrescriptionID 
    { 
     get 
     { 
      if (m_PrescriptionID == null) 
      { 
       m_PrescriptionID = new PDInt(); 
      } 

      return m_PrescriptionID; 
     } 
     set 
     { 
      if (m_PrescriptionID == null) 
      { 
       m_PrescriptionID = new PDInt(); 
      } 
     } 
    } 

這將是非常有益的我能夠確定編程的實際實例名是什麼所以我可以把它放在類中的一個字符串中,以便以後參考。

我在我的應用程序中使用反射,我似乎無法弄清楚當類實例化時如何獲取名稱。

謝謝。

+0

實例化名稱==變量名稱 –

回答

2

如果我理解正確,您想在類中知道當類實例化時,從別的地方使用的實例名是什麼?

如果是這樣 - 你不能。 c#不允許這樣做。

編輯:

爲什麼你需要那個?也許你有問題可以通過其他方式解決?

+0

謝謝你的提問。我想知道實例化類的名稱,因此我可以使用它來填充類中的Name屬性。這樣,如果我需要知道類的名稱,我不必稍後使用反射。 – MikeMalter

+0

這不是類的名稱,它是實例的名稱。你必須手工設置它。例如,在一個構造函數this.Foo = new Bar(「Foo」); –

+0

是的,我想在創建過程中通過語法來知道類的實例是什麼。 – MikeMalter

相關問題