0

我发现自己一直在这样做:

public int Number 
{
get{return _Number;} 
set{_Number = value; NotifyPropertyChanged("Number");}
}

private int _Number;

以及许多类中的大量这些变量。是否有任何 IDE 或工具或插件可以帮助自动生成私有变量和通知部分?

有任何想法吗?谢谢。

4

4 回答 4

1

是的,它们被称为代码片段

有趣的是,我碰巧经常使用这个片段,所以这里是代码:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>notifyproperty</Title>
            <Shortcut>propnotif</Shortcut>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>field</ID>
                    <ToolTip>Field name.</ToolTip>
                    <Default>_myField</Default>
                </Literal>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>Type name.</ToolTip>
                    <Default>string</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>Property name.</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp">
                <![CDATA[private $type$ $field$;
        public $type$ $property$
        {
            get { return $field$; }
            set 
            {
                $field$ = value; NotifyPropertyChanged("$property$");
            }
        }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>
于 2013-07-19T15:27:06.057 回答
1

Resharper为自动创建提供了很好的工具INotifyPropertyChanged

有关详细信息,请参阅有关 INotifyPropertyChanged 的​​ JetBrians 博客文章。

于 2013-07-19T15:31:09.643 回答
0

简单的解决方案。您需要prop在 Visual Studio 中输入并按两次 Tab,这将为您提供属性的骨架代码。

详细解决方案参考@newStachExchangeInstanc 回答

于 2013-07-19T15:32:09.387 回答
0

IDE 中内置了大量代码片段。

prop 给你:public TYPE Name {get;set;}
propdp 给你一个完整的 WPF 依赖属性

等等。检查此 MSDN 链接以获取所有现有链接。正如前面的答案所述,您也可以创建自己的。

于 2013-07-19T15:32:10.853 回答