为什么“propdp”代码片段不使用 nameof 运算符作为注册属性的名称

本文关键字:运算符 注册 属性 nameof propdp 代码 片段 为什么 | 更新日期: 2023-09-27 18:34:29

如果您插入代码片段 propdp,它不会在 DepencendyProperty.Register 方法的第一个参数中使用 nameof 运算符作为属性名称,它会创建如下所示的内容:

    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }
    // Using a DependencyProperty as the backing store for Text.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty TextProperty =
        DependencyProperty.Register("Text", typeof(string), typeof(MyContentControl), new PropertyMetadata(""));

如果您使用运算符名称,显然会更好,如下例所示:

    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }
    // Using a DependencyProperty as the backing store for Text.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty TextProperty =
        DependencyProperty.Register(nameof(Text), typeof(string), typeof(MyContentControl), new PropertyMetadata(""));

为什么“propdp”代码片段不使用 nameof 运算符作为注册属性的名称

您可以按照以下步骤修改代码片段:

  • 找到代码段的文件。选择菜单选项工具/代码段管理器...。将显示"代码段管理器"对话框。
  • 在">语言">中,选择">CSharp"。
  • 打开 NetFX30,然后选择">定义依赖项属性"。你将在"位置">中看到文件的路径。应该在 C:''Program Files (x86(''Microsoft Visual Studio 14.0''VC#''Snippets''1033''NetFX30

打开文件并将宏的定义从

public static readonly DependencyProperty $property$Property = 
DependencyProperty.Register("$property$", typeof($type$), typeof($ownerclass$), new PropertyMetadata($defaultvalue$));

public static readonly DependencyProperty $property$Property = 
DependencyProperty.Register(nameof($property$) , typeof($type$), typeof($ownerclass$), new PropertyMetadata($defaultvalue$));

并保存(请记住以管理员身份打开文本编辑器(。

重新启动 Visual Studio。