2012-07-12 41 views
1

我在寫一個包含90個整型變量的類。基本上有10個,但每個都有3x3屬性,使它們成爲90.我將進一步解釋它。嵌套結構作爲類中的成員

所以我有的10個變量是:v0,v1,v2,...,v9。其中每個城市,縣和州有3個不同的值。而且,這些對於過去,現在和將來都有3個不同的值。

因此,一個典型的值將是:v3.City.Future或v7.State.Past或v8.County.Present。

我想實現一個類,每個變量有10個結構體,然後每個結構體都有一個3個嵌套結構體(城市,縣和州),每個結構體都有3個整數變量用於過去,現在和未來。

這還處於概念階段。我試圖去用上述方法,但它不工作。請隨時提出任何建議。

謝謝。

UPDATE:

這裏是代碼片段:

public class MyClass 
{ 
    public MyVariable myvariable; 
} 

public struct MyVariable 
{ 
    public struct National 
    { 
     public int Past { get; set; } 
     public int Present { get; set; } 
     public int Future { get; set; } 
    } 
    ... 
} 

現在,當我實例化類和訪問成員(myclass.myvariable.National.Past),它沒有得到會員。

+7

你是什麼意思「它不工作」? – 2012-07-12 20:30:13

+1

聽起來像它應該是一個類,也許你可以張貼一些代碼,所以我們可以看看什麼是不工作,並能夠幫助它。 – 2012-07-12 20:36:28

+2

聽傢伙,如果你不能理解這個問題,甚至當它被回答時,你不必不斷地降低它的音量。這是荒謬的。 – Farhan 2012-08-07 20:00:49

回答

11

下面是這個問題的答案:

public struct PeriodVars 
{ 
    public int Past { get; set; } 
    public int Present { get; set; } 
    public int Future { get; set; } 
} 

public struct VarStruct 
{ 
    public PeriodVars City; 
    public PeriodVars County; 
    public PeriodVars State; 
} 

現在的類將是:

public class MyClass 
{ 
    public VarStruct v0; 
    public VarStruct v1; 
    ... 
} 

一旦我實例化一個類的對象,可以參考我就喜歡這樣的:

objMyClass.v0.City.Past = 111; 

除了批評之外,我沒有多少幫助。

通常,一個人無法理解被認爲是另一個人無法解釋。我花了15-20分鐘時間寫下這個問題,人們在不到30秒的時間內開始投票。

3

你的「問題」根本不是一個真正的問題,但是這裏有一組簡單的類來實現這一點。我使用類而不是結構體,因爲如果使用結構體,您將需要了解一些「疑難雜症」。

除非也許如果你描述「它不工作」,我敢打賭,你的問題實際上是你正在嘗試使用結構。

請張貼您的代碼,並描述您的症狀以使我們能夠更好地幫助您。

public class Foo<T> 
{ 
    public T Future; 
    public T Present; 
    public T Past; 
} 

public class Bar 
{ 
    public Foo<string> City; 
    public Foo<string> State; 
    public Foo<string> Country; 
} 

public class Top 
{ 
    public Bar v0; 
    public Bar v1; 
    //... 
    public Bar v2; 
} 
+0

添加了代碼片段。 – Farhan 2012-07-12 20:47:24

+0

你可以發佈代碼「現在當我實例化類並訪問成員(myclass.myvariable.National.Past)時,它不會獲得成員。」 – csauve 2012-07-12 21:05:10

+0

我這樣做:MyClass myclass = new MyClass(); – Farhan 2012-07-12 21:09:11

3

看起來你是基於您的評論混合類型和實例:

假設你MyVariable的外觀如下:

public struct MyVariable 
{ 
    public struct National 
    { 
     public int Past; 
    } 
    public National ValueForNational; 
} 

myclass.myvariable.National - 這是一個類型(不會編譯)

myclass.myvariable.National.Past - 它是一個類型的成員(不會編譯)

myclass.myvariable.ValueForNational - 是MyClass的變量中MyVariable的成員的成員值(將編譯)

myclass.myvariable.ValueForNational.Past - 是一個你可能想...