Visual Studio中多属性类对象实例化快捷键方案咨询
完美解决多属性类的实例化痛点!
哈哈,太懂这种手动赋值一堆属性的痛苦了——尤其类的属性超过8个的时候,简直是重复劳动天花板!结合你用的Visual Studio 2015 + C# + Resharper,完全有现成的快捷方案,完美符合你「不用构造函数、可读性强、适配LinQ to SQL」的需求,下面给你唠唠具体操作:
方法一:用Resharper内置快捷操作(最快最省心)
这是我日常用得最多的方式,不用额外配置,几步搞定:
- 先写出实例化的基础代码:
var myInstance = new YourClassName(); - 把光标移到括号后面,改成对象初始化器的格式:
var myInstance = new YourClassName { }; - 把光标放在大括号内部,按下
Alt+Enter(Resharper的核心快捷触发键) - 在弹出的菜单里选择「Generate properties initialization」(VS2015里的Resharper版本就是这个表述)
- 瞬间!所有可写的类属性都会被自动生成到大括号里,每个属性占一行,比如:
var myInstance = new Customer { Id = 0, Name = "", Email = "", Phone = "", Address = "", CreateTime = DateTime.Now, IsActive = false, // 剩下的属性都会自动列出来 };
你只需要把默认值改成你要的内容就行,可读性拉满,而且完全避开了构造函数,LinQ to SQL里用这种对象初始化器完全没问题——因为它是先创建空实例再逐个赋值,不会触发构造函数的兼容性问题。
方法二:自定义Resharper Live Template(个性化需求)
如果需要更个性化的模板(比如固定某些属性的默认值,或者自定义变量名),可以自己做个Live Template:
- 按下
Ctrl+Alt+S打开Resharper的设置面板 - 导航到「Tools → Live Templates → C#」
- 点击右上角的「Add Template」按钮,新建一个模板
- 填写以下内容:
- Abbreviation:比如
initobj(选个你记着方便的缩写就行) - Description:写个备注,比如「快速生成类实例的属性初始化框架」
- Template text:
var $varName$ = new $ClassName$ { $Properties$ };
- Abbreviation:比如
- 点击「Edit variables」按钮,给每个变量设置规则:
$ClassName$:变量类型选「Type name」,会自动弹出类名选择框$Properties$:变量类型选「Properties of type $ClassName$」,自动拉取目标类的所有可写属性$varName$:选「Suggest name based on type」,自动生成合理的变量名
- 保存模板后,在代码里输入
initobj,按Tab键就能触发,跟着提示选类名,瞬间生成完整的初始化框架!
小补充:只初始化部分属性怎么办?
如果不需要给所有属性赋值,Resharper生成后直接删掉不需要的行就行;或者在生成时弹出的属性选择框里,可以勾选你需要初始化的属性,只生成这些的代码。
这样操作下来,再也不用手动敲每个属性名了,效率直接拉满,还完全符合你的需求~
内容的提问来源于stack exchange,提问作者HenryGuillen17
相关产品推荐
相关产品推荐

