C# 为什么我能';是否不修改对象中的这些值?
我有一个问题,如果我想将一个值编辑到一个对象中并再次调用它,我会得到旧值而不是新值 下面是我获取类的函数:C# 为什么我能';是否不修改对象中的这些值?,c#,C#,我有一个问题,如果我想将一个值编辑到一个对象中并再次调用它,我会得到旧值而不是新值 下面是我获取类的函数: public static Clan GetClanByID(int Index) { foreach (Clan Clan in Clans) { if (Clan.ID == Index) { return Clan; } }
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
};
}
以下是我更新值的函数:
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;
}
公共类家族
{
公共int ID;
公共内部领导ID;
公共int扩展;
公共创新;
公共长期服务;
公共长IconID;
公共字符串名称;
公共新闻;
公共字符串描述;
公开名单;
公开名单用户;
公开名单专员;
公开名单待定者;
公共领导信息;
}
示例:旧值为“123”,然后我调用函数ChangeAnnouncement,并将该值设置为“1234567890”,之后我使用GetClanByID(ID).Description获取该值,但我仍将获取旧值(“123”)
我希望你能帮助我。你每次都会返回一个新的氏族。你忘了将新创建的氏族添加到
氏族中
这就是为什么你不应该创建可变结构。你还没有声明任何结构。。。你为什么要谈论他们?请注意,如果你没有找到一个氏族,你是在创建一个新的氏族,但没有将其添加到你的收藏中。我编辑了你的问题。你说的是“结构”,但用的是一个类,所以我把所有提到“结构”的地方都删掉了<代码>结构作为C#中的特殊含义。首先,它们应该是不变的。您实际上并没有创建结构,而是创建了一个类。我正在将新创建的氏族添加到氏族中。@lokko然后它发生在您提供的代码之外的某个地方。哦,您要更改的氏族模式可能是1吗?ChangeAnnouncement会获得一个模式-如果是1,它会更改新闻而不是描述。