개체에 값을 편집하고 다시 호출하려는 경우 문제가 발생합니다. 새 값 대신 이전 값이 나타납니다. 클래스 여기개체에서이 값을 수정할 수없는 이유는 무엇입니까?
public static void ChangeAnnouncement(int ClanID, int Mode, string Text)
{
if (ClanID != -1)
{
Clan Clan = GetClanByID(ClanID);
if (Mode == 0)
{
Clan.Description = Text;
}
else if (Mode == 1)
{
Clan.News = Text;
}
}
}
그리고있다 :
public class Clan
{
public int ID;
public int LeaderID;
public int Extension;
public int CreationDate;
public long EXP;
public long IconID;
public string Name;
public string News;
public string Description;
public List<ClanWars> ClanWars;
public List<ClanUsers> Users;
public List<ClanCoMasters> CoMasters;
public List<ClanPendingUsers> PendingUsers;
public LeaderInformations LeaderInformations;
}
예 여기
public static Clan GetClanByID(int Index)
{
foreach (Clan Clan in Clans)
{
if (Clan.ID == Index)
{
return Clan;
}
}
return new Clan()
{
ID = -1,
Name = "NULL",
IconID = -1
};
}
이 값을 업데이트하는 내 기능입니다 : 여기
는 클래스를 얻을 내 기능입니다 : 이전 값은 "123"이었습니다. ChangeAnnouncement 함수를 호출하고 값을 "1234567890"으로 설정 한 것입니다. GetClanByID (ID) .Description을 사용하는 값이지만 이전 값 ("123")을 계속 가져옵니다.
나는 당신을 도와 줄 수 있기를 바랍니다.
이렇게하면 변경할 수있는 구조체를 만들지 않아야합니다. – SLaks
구조체를 선언하지 않았습니다 ... 왜 그 구조에 대해 이야기하고 있습니까? 클랜을 찾지 못하면 새 템플릿을 만들고 있지만 컬렉션에 추가하지는 않습니다. –
질문이 편집되었습니다. 당신은 '구조'라고 말했지만 수업을 사용했기 때문에 모든 멘션을 '구조'로 떨어 뜨 렸습니다. C#의 특별한 의미로 '구조'. 하나 들어, 그들은 불변으로되어 있습니다. 실제로 구조는 만들지 않았지만 클래스를 만들었습니다. – zmbq