C#中使用结构体,在结构体的定义中又包含另一个结构体的数组,该怎么定义?

struct a
{
int start;
int end;
};
struct b
{
int id;
a[] suba=new a[10];
};

编译时提示错误:结构中不能有实例字段初始值设定项,
改成a [10]suba; 也不行

慕田峪7331174
浏览 1312回答 3
3回答

温温酱

将a[] suba=new a[10];改为: a suba[10]; 即可.此处 a 代表类型,suba代表变量名 (类似int arr[10] , 写成 int[10] arr 明显错误)

富国沪深

方法还是在struct内部实现比较好。以C#为例,参考.NET框架源代码中的int类型定义之Int32: using System.Globalization;using System.Runtime.InteropServices;namespace System{// 摘要:// 表示 32 位有符号的整数。[Serializable][ComVisible(true)]public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>{// 摘要:// 表示 System.Int32 的最大可能值。此字段为常数。public const int MaxValue = 2147483647;//// 摘要:// 表示 System.Int32 的最小可能值。此字段为常数。public const int MinValue = -2147483648; // 摘要:// 将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。//// 参数:// value:// 要比较的整数。//// 返回结果:// 一个有符号数字,指示此实例和 value 的相对值。 返回值 说明 小于零 此实例小于 value。 零 此实例等于 value。 大于零 此实例大于// value。public int CompareTo(int value); 
打开App,查看更多内容
随时随地看视频慕课网APP