小编Ale*_*kov的帖子

在 C# 中对括号表达式进行赋值意味着什么?

我在阅读 Avalonia 源代码时发现了这句话:

return new MenuFlyoutPresenter
{
    [!ItemsControl.ItemsProperty] = this[!ItemsProperty],
    [!ItemsControl.ItemTemplateProperty] = this[!ItemTemplateProperty]
};
Run Code Online (Sandbox Code Playgroud)

我从未见过这样的语法。如果没有索引属性或 this[] 访问器,这些括号会做什么?如果它们引用的属性不是 bool,为什么它们会用感叹号否定?也许是某种空检查?

代码本身包含在以下 cs 文件中:

https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Flyouts/MenuFlyout.cs

我跟踪了代码,但无法理解该语法的作用。

c# collection-initializer

30
推荐指数
2
解决办法
1792
查看次数

标签 统计

c# ×1

collection-initializer ×1