我正在使用Visual Studio 2010和ReSharper 5.
我在.cs文件的顶部定义了这个。
#if X86
using size_t = System.Int32;
#else
using size_t = System.Int64;
#endif
然后我可以使用size_t并知道它是一个本机整数,如果编译为32位汇编则为32位,如果编译为64位汇编则为64位。 (对于那些好奇的人来说,替代方案总是使用Int64,或者在运行时在IntPtr.Size == 4上进行分支并且有两个版本的代码。我更喜欢这个解决方案。)
但是,如果我键入size_t并命中空格,它将自动转换为Int64(如果定义了X86,则为Int32)。显然这是不可取的。
我进入了ReSharper选项并转到了Environment \ Intellisence \ Completion行为并禁用了“自动完成单个项目:”下的所有复选框。
它仍然会发生,还有什么我可以尝试的吗?
答案 0 :(得分:24)
我遇到了类似的问题(使用VS2013和Resharper 8.2)。
要在每次“空格”命中时停止不需要的自动完成,我必须在VS和R#选项中的“空格”上禁用IntelliSense完成:
干杯!
答案 1 :(得分:17)
一种解决方案是切换到intellisense的建议完成模式。切换的默认键绑定是Ctrl+Alt+Space
。在建议模式下,如果您明确选择要更改的值,它将仅更改您键入的内容。你可以在这里阅读更多相关信息:
http://blogs.msdn.com/b/zainnab/archive/2012/05/01/9943045.aspx
答案 2 :(得分:5)
默认情况下关闭IntelliSense选项
在“工具”菜单上,单击“选项”。
选择文本编辑器文件夹。
选择要自定义IntelliSense的语言的文件夹。
在“常规”属性页中,清除您不需要的IntelliSense功能的复选框:
自动列表成员适用于列表成员
参数信息适用于参数信息
答案 3 :(得分:4)
您可以使用转义键取消当前的智能感知建议。
答案 4 :(得分:0)