gpt4 book ai didi

c# - 更新类中的结构属性

转载 作者:行者123 更新时间:2023-11-30 20:49:46 24 4
gpt4 key购买 nike

我知道 Struct 是值类型而 Class 是引用类型,但我似乎无法解决这个问题。

我有一个包含结构列表的类:

public class Basket
{
string ID{get; set;}
List<Fruit> fruits{get;set;}

public struct Fruit
{
string Name{get;set;}
bool IsFresh;
}
}

当将一个类实例传递给另一个类时,我想更新 Structs 的一个 IsFresh 属性,但代码只是跳过它:

public class Customer
{
public string Name{get;set;}
public Basket Basket{get;set;}

public Customer(string name, Basket basket)
{
this.Name = name;
this.Basket = basket;
}

public ChangeBasket()
{
//CODE THAT IS NOT WORKING
Basket.Fruits[0].IsFresh = false;
}
}

正在修改相同的引用类,应更新有值结构。

为什么不起作用?

最佳答案

您通常不应该编写可变结构。相反,分配一个全新的结构。参见 here .基本上发生的事情是您正在修改结构的副本,因为它是一个值类型。

关于c# - 更新类中的结构属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com