如何让 Visual Studio Intellisense 发现继承的子类?
Posted
技术标签:
【中文标题】如何让 Visual Studio Intellisense 发现继承的子类?【英文标题】:How to get Visual Studio Intellisense to discover an inherited subclass? 【发布时间】:2014-05-03 22:09:59 【问题描述】:我有一个场景,Visual Studio (2012) Intellisense 无法识别在继承类中定义的子类。最好用一个简单的例子来说明:
public class Shape
public class SubShape
public class Circle : Shape
所以我有一个带有 SubShape 子类的 Shape 类,以及继承自 Shape 的 Circle。
如果我随后尝试使用 new Circle.SubShape()
实例化 SubShape 实例,则在 new Circle.
之后,我无法从 Visual Studio 的 Intellisense 获得任何结果。一切都正确构建,没有语法错误。
如果我使用 new Shape.SubShape()
从基类中引用该类,则 Intellisense 可以工作。如果我一开始不使用 new
关键字,它也能正常工作——因此输入 Circle.
会为我提供 SubShape
作为选项。
我使用的是 Visual Studio 2012,版本 11.0.61030.00 Update 4
。
更新:我已禁用 ReSharper,但如果我打开它并选择使用 ReSharper 的 Intellisense 而不是 Visual Studio,一切都会按预期工作。
【问题讨论】:
你试过2013吗?我有 2013 (Professional) 和 Resharper,它的工作原理与您在此处描述的一样。不知道是 Reharper 还是 VS2013 做的呢 谢谢!您可以尝试禁用 ReSharper 并查看它是否仍然有效?我认为无论如何,您都可以在 2012 年通过工具 -> 选项 -> ReSharper 对话框轻松完成此操作。如果我打开 ReSharper 并选择使用 ReSharper 的 Intellisense 而不是 VS,它也适用于我......所以在 2012 年,它似乎是 ReSharper 修复的 Visual Studio 错误。 刚刚禁用它,它看起来像是一个 ReSharper 功能 :(。我回家后用 VS2013 Ultimate 进行测试,看看它是否存在 刚刚测试,是Resharper的功能。 CodeRush 也有这个功能 :) 【参考方案1】:这可能是一个 Intellisense 错误(非常轻微),也发生在 VS2010 中。
奇怪的是,声明一个变量确实有智能感知,即两者兼而有之
Shape.SubShape s;
Circle.SubShape s;
键入时,将在点后列出子形状。
【讨论】:
以上是关于如何让 Visual Studio Intellisense 发现继承的子类?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Visual Studio Intellisense 发现继承的子类?
如何让 Visual Studio 连接到 Windows 应用商店?