[英]nested struct as members in a class
我正在编写一个包含 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)时,它没有获取成员。
这是答案:
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秒的时间内开始投票。
你的“问题”根本不是一个问题,但这里有一套简单的类来完成。 我使用类而不是结构,因为如果你使用结构,你需要了解一些“陷阱”。
除非您描述“它不起作用”, 否则我打赌您的问题实际上是您正在尝试使用结构。
请发布您的代码,并描述您的症状,以便我们更好地帮助您。
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;
}
看起来您正在根据您的评论混合类型和实例:
假设您的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
- 你可能想要的......
struct MyVaribale 下缺少初始化
公共 国家 国民;
internal class Program
{
static void Main(string[] args)
{
var myVar = new MyClass();
myVar.myvariable.national.Past = 1;
}
}
public class MyClass
{
public MyVariable myvariable;
}
public struct MyVariable
{
public National national; // This line is missing thats why You cant access the members of National struct.
public struct National
{
public int Past;
public int Present;
public int Future;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.