You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VS2017 C#代码自动生成时添加using System的问题求助

嘿,这个问题我太懂了——在Unity里用VS2017写代码,每次靠「提前写函数名让VS自动生成」时,它总硬塞个using System;进来,跟Unity的Random撞得头破血流,一天要改十几次,烦得要死。给你几个实用的解决办法,按省心程度排序:

1. 先搞个“防冲突保险”——给Unity Random加别名

这是最快见效的办法,就算VS继续加using System;也不怕。在你所有Unity脚本的最顶部(using UnityEngine;下面就行)加一行:

using Random = UnityEngine.Random;

之后不管代码里有没有System命名空间,只要写Random,编译器都会优先用Unity的随机类,彻底杜绝混淆问题。甚至可以把这行加到Unity的脚本模板里,新建脚本自动带上,一劳永逸。

2. 直接关掉VS自动加using的功能

如果不想让VS随便给你加命名空间,直接改它的设置:

  • 打开VS,点击顶部菜单的「工具」->「选项」
  • 展开左侧的「文本编辑器」->「C#」->「高级」
  • 在右侧找到**“在生成代码时添加using指令”**的复选框,把它取消勾选
  • 点击「确定」保存设置
    这样以后VS自动生成函数时,就不会自作主张加using System;或者其他命名空间了。

3. 修改VS的代码生成模板(彻底根治)

如果想保留其他场景下自动加using的功能,只是针对生成方法时去掉using System;,可以修改VS的内置模板:

  • 找到VS2017的模板文件路径(以Community版本为例):
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Method\Method.cs
  • 右键用记事本或VS打开这个文件,删掉里面的using System;
  • 把原来的throw new NotImplementedException();改成完全限定名
    throw new System.NotImplementedException();
    
  • 保存文件后,重启VS。以后自动生成方法时,就不会带using System;了,而且NotImplementedException依然能正常识别。

4. 用Resharper自定义规则(如果你装了的话)

如果你的VS装了Resharper插件,可以更精准地控制代码生成:

  • 打开Resharper的设置(快捷键Ctrl+Alt+S
  • 找到「Code Editing」->「C#」->「Code Generation」->「Implement Members」
  • 在「Add 'using' directives」选项里,取消勾选或者排除System命名空间
  • 保存设置后,Resharper生成代码时就不会加using System;

内容的提问来源于stack exchange,提问作者user2286552

火山引擎 最新活动