Visual Studio中使用小于号<时IntelliSense不提示变量及this的原因?
问题解析:IntelliSense在
<后不提示局部变量/this的原因 先看你给出的代码:
class Foo { public void Baz() { int x = 0; var list = new List<int>(); while (list.Count < ) // 在"<"后开始输入 } }
出现这个问题的核心是语法歧义:
- 单独的
<符号在C#里有两种可能的语法角色:一是作为比较运算符的左半部分,二是作为泛型类型/方法的参数列表起始标记。 - 当你在
list.Count <后面输入内容时,IntelliSense会优先把这个<解析为泛型上下文的开始(比如推测你可能要写list.Count<SomeType>(...)这类泛型方法调用),而非比较运算符的右操作数,所以不会把局部变量x或this纳入候选提示。 - 而
<=或>是无歧义的比较运算符,编译器能立刻确定这是比较表达式场景,自然会正确提示当前作用域内的可用标识符。
内容的提问来源于stack exchange,提问作者rory.ap
相关产品推荐
相关产品推荐

