gpt4 book ai didi

c# - 为 INotifyPropertyChanged 使用代码片段

转载 作者:太空狗 更新时间:2023-10-29 18:05:23 26 4
gpt4 key购买 nike

我找到了 INotifyPropertyChanged 的​​这段代码

但是它显示的代码是这样的:

INotifyPropertyChanged

我想要这个:

  1. 对于公共(public):第一个字母大写 + ...

  2. for private : 下划线 + 小写首字母 + ...

我怎样才能做到这一点?

编辑:无需键入公共(public)和私有(private)字段

<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Property type</ToolTip>
<Default>string</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Property name</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>notifyMethod</ID>
<ToolTip>name of method to raise PropertyChanged event</ToolTip>
<Default>NotifyPropertyChanged</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[private $type$ _$property$;
public $type$ $property$
{
get { return _$property$;}
set
{
if (value != _$property$)
{
_$property$ = value;
$notifyMethod$("$property$");
}
}
}
$end$]]>
</Code>
</Snippet>

最佳答案

snippets可以用xml写,可以用vs做任何语言

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>Notify Property Changed Method</Title>
<Author>Akash</Author>
<Shortcut>npcm</Shortcut>
<Description>This method implements the OnPropertyChanged method and binds to the event handler</Description>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>

<Code Language="CSharp">
<![CDATA[#region Notify Property Changed Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if(handler!=null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion]]>
</Code>
</Snippet>
</CodeSnippet>

这是自动生成通知属性更改方法的代码。您需要做的就是将其保存在一个文件中,扩展名为 snippet in your Documents/VisulaStudio(YourVersion)/Code Snippets/Visual C#/

就是这样,你已经准备好使用它了......

现在,观察代码片段,那里有快捷方式标签。这个标签引用了你在编写激活代码片段时应该在 vs 中使用的标签。

这是属性本身的代码:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>Notifiable Property</Title>
<Author>Akash</Author>
<Shortcut>nprop</Shortcut>
<Description>Property With in Built Property Changed method implementation.</Description>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>Type</ID>
<Default>string</Default>
</Literal>
<Literal>
<ID>Property</ID>
<Default>PlaceHolder</Default>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[private $Type$ _$Property$;
public $Type$ $Property$
{
get { return _$Property$; }
set {
if(value!=null || value != _$Property$) _$Property$ = value;
OnPropertyChanged("$Property$");
}
}]]>
</Code>
</Snippet>
</CodeSnippet>

在这个特定的片段中,您需要做的就是键入 nprop 并按 Tab 选项卡,它会生成所需的代码。您只需输入数据类型和名称。其余的由片段本身处理。 .

虽然这是一个更好的解决方案,大大提高了编码速度,但它适用于小型项目,只有 viewmodelbase 方法适用于大型项目。

关于c# - 为 INotifyPropertyChanged 使用代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514413/

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