如何在列表中改变结构体的元素
本文关键字:结构体 元素 改变 列表 | 更新日期: 2023-09-27 17:53:11
public struct rectangle
{
public decimal a;
}
是我的结构体这里有一个矩形结构体列表
list<rectangle> dataRectangle= new list<rectangle>();
现在我已经在列表中添加了一些结构体现在,我想改变列表中
结构体的值dataRectangle[0].a=0;
上面写着
cannot modify the return value ' list<form4.rectangle>.this[int] ' because it is not a variable
帮助为什么会出现这种情况,有没有其他方法来修改
struct
为值类型。因此,与class
之类的引用类型相比,您不传递对实例的引用,而是传递值本身。
所以从索引器dataRectangle[0]
返回的不是对您的struct
的引用,而是该struct
的副本。它只是在堆栈上传递,但它本身不是变量。
要解决这个问题,您可以将rectangle
声明为class
(我更喜欢可变类型):
public struct rectangle
{
public decimal A {get; set;}
}
,否则你(尽管看起来很丑)必须做一个像
这样的重赋dataRectangle[0] = new rectangle{a=0};