Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我能';是否不修改对象中的这些值?_C# - Fatal编程技术网

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,它会更改新闻而不是描述。