gpt4 book ai didi

c# - Entity Framework : How does the data context deal with duplicate objects?

转载 作者:行者123 更新时间:2023-11-30 21:09:52 25 4
gpt4 key购买 nike

所以今天我发现c#默认按值传递引用类型。这与我认为我的理解背道而驰——引用类型以引用为标准。好吧。

这让我想到了一个我拥有的方法,该方法将实体对象作为参数,附加到上下文,并对其进行一些更改。该方法没有返回对象。在我的上下文中调用保存更改时,应用了方法中所做的更改。当时我假设它有效,因为我正在传递对该对象的引用,因此可以愉快地更改它而无需返回任何内容以重新分配。

所以问题是,这是如何工作的? (代码确实按我的预期工作)。

谢谢,

最佳答案

是的,这东西很棘手。我发现自己已经有几个月没有想过它了,然后不得不想几秒钟才能再次理清头绪。虽然早就明白了。

尽管参数 是按值的,但这只是意味着创建了一个新的引用变量,但仍然指向同一个对象。如果您通过引用创建参数,那么将传入相同的指针,这当然指向相同的对象。

当您弄乱参数变量时,情况会有所不同。如果将它设置为 null 或其他某个对象,变量“outside”将不会受到影响。但是,如果参数是按值传入的,则将变量设置为 null 或另一个对象将更改“外部”的引用。

对于值类型,参数是按引用还是按值通常会产生实际差异。如果按值传递,对值或成员(如果它是结构)的更改将不会反射(reflect)在“外部”。

这是一个 good explanation带有简单的示例。

关于c# - Entity Framework : How does the data context deal with duplicate objects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822105/

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