我正在编写一个包含90个整数变量的类。基本上有10个但每个都有3x3属性,使它们成为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)时,它不会获得该成员。
答案 0 :(得分:14)
以下是答案:
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秒的时间内开始投票。
答案 1 :(得分: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;
}
答案 2 :(得分: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
- 是你可能想要的......