C# 如果我使用一个对象的属性作为内存缓存中的键,该对象仍然会被垃圾收集吗?

C# 如果我使用一个对象的属性作为内存缓存中的键,该对象仍然会被垃圾收集吗?,c#,.net,caching,garbage-collection,memorycache,C#,.net,Caching,Garbage Collection,Memorycache,假设您有一个类似User的对象,其中一个属性是UserName。假设您想使用C#MemoryCache存储有关该用户的一些信息,并使用UserName string属性作为缓存中的键 这会阻止用户对象的垃圾收集吗?如果我理解正确,您保存的是属性值(本例中为字符串),而不是对象本身,因此您的对象将被垃圾收集。如果我理解正确,您保存的是属性值(本例中为字符串),而不是对象本身,因此,您的对象将被垃圾收集。我们将需要一个垃圾箱。简短回答-如果用户是内存缓存中的键或值,它将阻止垃圾收集。如果没有,就不会

假设您有一个类似User的对象,其中一个属性是UserName。假设您想使用C#MemoryCache存储有关该用户的一些信息,并使用UserName string属性作为缓存中的键


这会阻止用户对象的垃圾收集吗?

如果我理解正确,您保存的是属性值(本例中为字符串),而不是对象本身,因此您的对象将被垃圾收集。

如果我理解正确,您保存的是属性值(本例中为字符串),而不是对象本身,因此,您的对象将被垃圾收集。

我们将需要一个垃圾箱。简短回答-如果
用户
内存缓存
中的键或值,它将阻止垃圾收集。如果没有,就不会了。我们需要一个。简短回答-如果
用户
内存缓存
中的键或值,它将阻止垃圾收集。如果不是,则不会。在这种情况下,应按值复制,而不是按引用复制。此语句要么是错误的,要么是多余的。最好删除它。
在这种情况下,它应该按值复制,而不是按引用复制。
此语句要么是错误的,要么是多余的。最好把它去掉。