我已经阅读了很多关于使用结构作为数据类型的危险,我想知道这个是否存在任何问题,
List<Summarized> SummarizedList = new List<Summarized>();
Summarized SumInfo;
struct Summarized
{
public string sBrand;
public string sModel;
public string sCustomer;
public int sline;
public string sLeader;
public int sDesire;
public int sReal;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用类型SumInfo的通用项列表,它是结构数据类型.每当我需要更新列表中的项目时,我只需执行以下操作:
SumInfo = (Summarized)SummarizedList[CurrentPos];
SumInfo.sDesire = DesireProd;
SumInfo.sReal = RealProduced;
SummarizedList[CurrentPos] = SumInfo;
Run Code Online (Sandbox Code Playgroud)
其中CurrentPos是我想要更新的项目的位置.
到目前为止一切正常,所以未来可能有任何问题吗?这个结构是可变的吗?
谢谢.
到目前为止一切正常,所以未来可能有任何问题吗?这个结构是可变的吗?
是的,这是一个可变的结构.是的,它会起作用.
但是,我认为这个结构应该是一个类.有关原因的详细信息,请参阅在类和结构之间选择.在这种情况下,你违反了3个结果应该始终为真的情况:
这强烈建议一个类更适合您的类型.它还可以简化您的代码.
顺便说一句 - 旁注,上面的代码中不需要强制转换.你应该能够写:
SumInfo = SummarizedList[CurrentPos];
Run Code Online (Sandbox Code Playgroud)