Мне нужны советы по структурам.
У меня есть 2 раздела кода. Первый раздел выглядит следующим образом:
namespace Project.GlobalVariables
{
class IOCard
{
struct InputCard
{
public string CardNo;
public int BaseAddress;
public int LowerAddress;
public int UpperAddress;
public int[] WriteBitNo = new int[16];
public int[] ReadBitNo = new int[16];
}
static InputCard[] InputCards = new InputCard[5];
public static string ACardNo = InputCards[1].CardNo;
public static string BCardNo = InputCards[2].CardNo;
}
}
Вторая часть выглядит следующим образом:
private void Form1_Load(object sender, EventArgs e)
{
IOCard.ACardNo = "Card A";
IOCard.BCardNo = "Card B";
MessageBox.Show(IOCard.ACardNo);
MessageBox.Show(IOCard.BCardNo);
}
Мой план состоит в том, чтобы иметь возможность назначать и извлекать компонент InputCards
с помощью IOCard
, как показано в Form1_Load
.
Однако, когда я компилирую код, я получаю следующую ошибку.
Ошибка 1 'Project.GlobalVariables.IOCard.InputCard.WriteBitNo': не может иметь инициализаторы полей экземпляра в структурах E:\Programming\New platform\StandardPlatform\StandardPlatform\Project\GlobalVariables.cs 16 26 StandardPlatform
Может ли кто-нибудь сказать мне, как решить эту ошибку? Пожалуйста, порекомендуйте. Спасибо.
Вот классы, которые я пытался создать и использовать, но не удалось.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project.GlobalVariables
{
static class IOCard
{
public const int TotalInputCard = 10;
public const int TotalOutputCard = 10;
public class InputCard
{
public string CardNo = "1";
public int BaseAddress;
public int LowerAddress;
public int UpperAddress;
public int[] WriteBitNo = new int[16];
public int[] ReadBitNo = new int[16];
}
public class OutputCard
{
public string CardNo;
public int BaseAddress;
public int LowerAddress;
public int UpperAddress;
public int[] WriteBitNo = new int[16];
public int[] ReadBitNo = new int[16];
}
public static InputCard[] InputCards = new InputCard[TotalInputCard];
public static OutputCard[] OutputCards = new OutputCard[TotalOutputCard];
public static int X100 = InputCards[0].WriteBitNo[0];
public static int Y100 = OutputCards[0].WriteBitNo[0];
}
}
Я попытался использовать их в Form_Load
, например:
private void Form1_Load(object sender, EventArgs e)
{
IOCard.X100 = 1;
IOCard.Y100 = 1;
}
Независимо от того, насколько я пытался искать в сети ответы, я нигде не попал.
Просьба сообщить. Спасибо.