나는이 소리가 어리석은 것을 안다. 하지만 여기서 뭔가 잘못하고있을거야.목록의 구조체에서 상태를 변경할 수없는 이유는 무엇입니까?
말, 그런 곳
struct lala
{
private bool state1;
public lala(bool state1)
{
this.state1 = state1;
}
public void SetState1ToTrue()
{
this.state1 = true;
}
public bool GetState1()
{
return this.state1;
}
}
...
List<lala> lalas = new List<lala>();
lalas.Add(new lala(false));
lalas.Add(new lala(false));
lalas[0].SetState1ToTrue();
// Why is it False???
Console.WriteLine(lalas[0].GetState1());
가로 변경을 제외하고이에 대한 해결 방법이 있습니다, 끔찍한 unelegant 낭비 보았다
List<lala> lalas = new List<lala>();
lalas.Add(new lala(false));
lalas.Add(new lala(false));
lala newLala = lalas[0];
newLala.SetState1ToTrue();
lalas[0] = newLala;
// It's True, finally.
Console.WriteLine(lalas[0].GetState1());
2 줄의 코드. Linq-ish 또는 Functional Programming-ish 방법이 있다면 코드 줄이 멋지게 될 것입니다.
-1 (커뮤니티 위키) – Samuel