自动完成其他类的成员

时间:2012-03-13 14:05:14

标签: c# resharper

是否可以只输入一个类的静态成员的第一个字母,然后(通过一个神奇的快捷方式)完成列表列出所有可能的 class.member 条目?


更详细的解释:

我有以下形式的15个课程:

class AClass
{
  public static readonly string Volumeclass = "abcd";
  //... other members
}

class AnotherClass
{
  public static readonly string Volumeclass = "xyz";
  //... other members
}

当我想访问这些成员时,我想要输入 Volumeclass 并想要获取列表:

  • AClass.Volumeclass
  • AnotherClass.Volumeclass
智力。所以我需要只选择正确的符号,而不是记住正确的类名。

我尝试过智能完成,但它没有以这种方式工作。

3 个答案:

答案 0 :(得分:3)

我不能说我知道这样的捷径。显然,如果您使用转到符号导航(IntelliJ: Ctrl-Shift-Alt-T或Visual Studio: Ctrl-Shift-Alt-T),您可以拥有所有VolumeClass属性的列表在你的代码中:

http://i.imgur.com/YP7nd.png

但这不是你想要的。我能建议的最接近的是使用Import Symbol完成( Ctrl - Alt - Space ),然后键入的第一个字母类型。它将显示所有全局可用的类型,并在需要时导入相应的using指令。

编辑另一个想法是使用ReSharper Live Template生成此功能,允许您根据前几个字母生成语句:

  1. 转到ReSharper - 模板资源管理器(在ReSharper 6中)
  2. 实时模板标签下,点击新模板按钮
  3. 为您的快捷方式命名,例如vc。 (可选)编写说明。
  4. 在主文字区域中,输入:$prefix$.Volumeclass
  5. 保存并退出模板资源管理器
  6. 您现在可以输入代码vc,然后输入具有该属性的类的名称。

    希望有所帮助。

答案 1 :(得分:1)

您可以将类放入公共名称空间。然后在命名空间名称后面键入点后,将弹出类列表。选择一个类后,仍然需要添加Volumeclass属性。

我不会仅为此目的重构您的命名空间层次结构,但如果将逻辑上的类组合在一起,它可能是一个很好的选择。如果命名空间名称很长,您可以选择添加 using alias directive (例如,using Prods = MyCompany.MyProject.Products;

答案 2 :(得分:0)

您必须先输入班级名称

AClass.<now the list of static members appears>

请注意,.NET Framework类库中有数万个类。您想要自动显示数百万会员吗?