You have declared AccountContainer
as a struct
. So
AccountList.Add(new AccountContainer("Michael", 54, 3, 512913));
creates a new instance of AccountContainer
and adds a copy of that instance to the list; and
AccountList[0].Money = 547885;
retrieves a copy of the first item in the list, changes the Money
field of the copy and discards the copy – the first item in the list remains unchanged. Since this is clearly not what you intended, the compiler warns you about this.
Solution: Do not create mutable struct
s. Create an immutable struct
(i.e., one that cannot be changed after it has been created) or create a class
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…