发布网友
共1个回答
热心网友
给结构体2加个带参数的构造方法就行了
public struct NodeTasks
{
public NodeTask[] oneTask; //我想要包含10个Node Task结构体
//但是结构体不能有付值的行为
public byte NowTask;
public NodeTasks(int n) //构造方法,n为结构体1的个数
{
oneTask = new NodeTask[n];
}
}
使用时:
myNodeTask[1] = new NodeTasks(10);追问谢谢 苍龙祸皇 的回答
错误提示:在控制返回调用方之前,字段'''WindowsFormsApplication1.NOdeTasks.NowTask'必须被完全赋值.
但我是过给.NowTask赋值都不行.
还有个问题,这个结构体, 是想用作外部变量,让其他的窗体都可以访问,和修改它. 以前用c语音的时候,可以这样用,不知道C#能不能实现呢.
追答段'''WindowsFormsApplication1.NOdeTasks.NowTask'必须被完全赋值
是说你必须在构造方法中为NowTask赋值
你改成这样就行了:
public struct NodeTasks
{
public NodeTask[] oneTask; //我想要包含10个Node Task结构体
public string NowTask; //标志现在的任务
public NodeTasks(int n, string nowtasks)
{
NowTask = nowtasks;
oneTask = new NodeTask[n];
}
}
使用时: myNodeTask[1] = new NodeTasks(10,"标志1");
结构体是值类型,但用法和类差不多,只要定义成public,在其他窗体访问应该没问题