gpt4 book ai didi

C# ??属性(property)运营商,它是如何运作的?

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

我不明白它是如何工作的。

private Person _user;

private Person User
{
get
{
return _user ?? ( _user = GetUser() );
}
}

我第一次引用 User 属性时,_user 为 null,因此它返回 (_user = GetUser())????

我错过了什么?

最佳答案

首先是null-coalescing operator如果不是 null,则返回左手操作数,否则返回右手操作数。

return _user ?? ( _user = GetUser() );

_usernull 的情况下,它返回 GetUser 方法返回的内容,并为其设置私有(private)字段。

所以它的工作原理是这样的:

  1. GetUser 返回分配给 _user
  2. 的值
  3. 赋值表达式 (_user = GetUser()) 返回值。

参见:How assignment expression returns value.

关于C# ??属性(property)运营商,它是如何运作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266140/

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