4

90 個の整数変数を保持するクラスを作成しています。基本は10個ですが、それぞれ3×3属性なので90個です。詳しく説明します。

したがって、私が持っている 10 個の変数は、v0、v1、v2、...、v9 です。これらのそれぞれには、市、郡、州の 3 つの異なる値があります。また、これらにはそれぞれ過去、現在、未来の 3 つの異なる値があります。

したがって、典型的な値は、v3.City.Future または v7.State.Past または v8.County.Present になります。

各変数に 10 個の構造体を使用してクラスを実装することを考えていました。次に、これらの各構造体には 3 つのネストされた構造体 (都市、郡、州用) があり、これらの各構造体には過去、現在、未来の 3 つの整数変数があります。

これはまだ構想段階です。上記のアプローチを試みましたが、うまくいきません。お気軽にご提案ください。

ありがとう。

アップデート:

コード スニペットは次のとおりです。

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) にアクセスすると、メンバーが取得されません。

4

4 に答える 4

18

これに対する答えは次のとおりです。

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 秒もかからずに反対票を投じ始めました。

于 2012-07-13T14:09:42.560 に答える
4

コメントに基づいてタイプとインスタンスを混在させているようです:

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- あなたがおそらく欲しいものです...

于 2012-07-12T21:20:43.117 に答える