【发布时间】:2021-08-03 11:30:07
【问题描述】:
为什么从字典中按键检索到的对象不是引用?
我的测试代码:
class Program
{
static Dictionary<int, Salad> test = new Dictionary<int, Salad>();
static void Main(string[] args)
{
test.Add(1, new Salad() { Vegetables = Vegetables.Tomato });
test.Add(2, new Salad() { Vegetables = Vegetables.Tomato });
var newSalad = new Salad() { Vegetables = Vegetables.Carrot };
test[1] = newSalad;
var salad2 = test[2];
salad2 = newSalad;
Console.WriteLine(test[1].Vegetables);
//Write: Carrot
Console.WriteLine(test[2].Vegetables);
//Write: Tomato
Console.ReadLine();
}
}
public class Salad
{
public Vegetables Vegetables { get; set; }
}
public enum Vegetables
{
Tomato,
Potato,
Carrot
}
【问题讨论】:
-
我不清楚你在问什么。你期待什么不同的输出,为什么?您从
Dictionary读取的对象是引用类型(Salad实例)。但目前尚不清楚为什么这是一个问题。 -
@David 它认为他们期望将新引用分配给
salad2也应该将其分配给test[2]。 -
"为什么从字典中按键检索到的对象不是引用?" - 这是一个参考。
Salad是一个类,所以它是一个引用类型。 -
你应该阅读How to Ask。
-
@David 我是说 juharr 写的内容
标签: c#