代码之家  ›  专栏  ›  技术社区  ›  HenryGuillen17

在Visual Studio中实例化对象的快捷方式

  •  11
  • HenryGuillen17  · 技术社区  · 6 年前

    我有一个拥有8个以上属性的类,我经常想用一些方法实例化它,但必须逐个编写属性来为其赋值,这是非常繁琐的。

    有没有办法用键盘快捷键插入一种“代码片段”,这样我就可以插入类的实例,只需修改要添加的值?。

    我不想使用构造函数,因为我希望实例对于代码的读取器是可读的,并且因为构造函数不在LinQ to SQL中工作。

    我使用Visual Studio 2015、C#、Resharper。

    非常感谢你。

    4 回复  |  直到 6 年前
        1
  •  9
  •   Ben Hall    6 年前

    如果您是这样初始化的:

      var example = new Example()
        {
            ...
        };
    

    然后,您可以使用Ctrl空格键,它将继续为您提供尚未设置的用于自动完成的属性。

        2
  •  7
  •   Sergey Vlasov    6 年前

    我已经创建了 Generate an initializer for a new object with names of public properties and fields 的命令 Visual Commander 扩大输入类名后调用它,它将生成一个初始值设定项:

    enter image description here

        3
  •  0
  •   Bacskay    6 年前

    据我所知,没有一种内置的方法来生成具有对象所有属性的实例化器。通常,当您必须这样做时,您将通过构造函数来了解对象的创建是否正确。

    您可以在Visual Studio中创建某种类型的代码段,但您必须自己创建,而且它只适用于该对象。。。。

    您也可以查看这篇文章,因为它与您要查找的内容非常接近,但听起来他们也没有找到一个很好的方法: Is there a way, at design time, to initialize an object with all properties in Visual Studio 2010?

        4
  •  0
  •   Ivan Ruski    6 年前

    您可以创建自定义代码段,其格式如下:

    <?xml version="1.0" encoding="utf-8" ?> <CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <Header> <Title>Create instance of my class</Title> <Author>Author</Author> <Shortcut>ShortCut (then press tab tab)</Shortcut> <-- Put your snippet <Description>Description</Description> <SnippetTypes> <SnippetType>SurroundsWith</SnippetType> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>message</ID> <Default>my function</Default> </Literal> </Declarations> <Code Language="CSharp"> <![CDATA[ var myclass = new MyClass() { Property1 = 1, Property2 = 2 }; ]]> </Code> </Snippet> </CodeSnippet>

    您可以将其保存在Nodepad中,并且必须使用 .snippet 扩大查找文件夹 ..Visual Studio 2017\Code Snippets\Visual C#\My Code Snippets
    准备好后,打开VS并进入 Tools -> Code Snippet Manager 并选择 Language CSharp 然后从“我的代码片段”文件夹中选择您的代码片段,您应该已经准备好使用它了