我試圖讓邏輯分隔符保持我的所有屬性在邏輯上是分開的,但所以我只需要傳遞單個對象。我說的是,我想實例化對象,並能夠使用Object.InnerObject.InnerObjectsProperty。下面是我測試,試圖找出如何做到這一點的代碼:類中的類,實例化爲單個對象
namespace SubclassTesting
{
class Program
{
static void Main(string[] args)
{
int x;
Console.WriteLine("type a number");
x = Convert.ToInt32(Console.ReadLine());
OuterClass TestClass = new OuterClass();
TestClass.OuterNumber = x;
TestClass.InnerClass.InnerNumber = x;
Console.WriteLine("success!");
Console.ReadKey();
}
}
class OuterClass
{
public OuterClass()
{
_InnerClass InnerClass = new _InnerClass();
}
public int OuterNumber { get; set; }
public class _InnerClass
{
public int InnerNumber { get; set; }
}
public _InnerClass InnerClass { get; set; }
}
}
此代碼對TestClass.InnerClass.InnerNumber失敗= X;帶有NullReferenceException - 對象引用未設置爲對象的實例。
該構造函數看起來並沒有做什麼,它無法使用和不使用。
這甚至可能嗎?我想實例化單個OuterClass對象,並讓所有包含的對象實例化,並可通過OuterClass對象訪問。這樣我只需要向方法傳入一個對象,但可以保持內部邏輯上相互獨立的工作。
+1注意到不必要的內部類--OP可能沒有意識到,您不需要將該類定義爲內部類來獲得該類型的成員變量。 – 2012-02-28 22:15:14
是的,我意識到嵌套類不是一個好習慣,但在我正在開發的實際應用中,它們似乎很有意義。它爲IT售票系統增加了一項功能。外部類包含有關票據請求的所有信息,而內部類包含有關相關用戶的信息(用戶名,電子郵件,電話等)。我將所有獨特的信息保留在外部類中,而不是將30個成員塞進外部類,並使用多個內部用戶對象。然後,我可以將單個對象傳遞給我的方法,並返回單個對象。 – friggle 2012-02-29 13:21:47
爲什麼不把相關的類實例公開爲外部類的屬性呢?無需使用內部類來實現相同的使用組合。 – BrokenGlass 2012-02-29 13:24:25