使用Visual Studio快捷方式/片段时,是否可以提前/自动指定集合,而不是之后填写绿色框?
在这种情况下,我试图用尽可能少的键击来提出类似下面的内容:
foreach (ListItem item in ListBox1.Items)
{
//
}
例如,快捷键“CTRL + K,CTRL + X foreach”会猜测我想要迭代的集合,并且通常会出错。我经常最终得到以下结论:
foreach (object var in collection_to_loop)
{
//
}
如果我输入集合标识符和/或使用“Surround with”它不会更好,因为它将突出显示的项目放在循环块中:
foreach (ListItem item in ListBox1.Items)
{
ListBox1.Items
}
有办法做到这一点吗?我正在使用Visual Studio 2005,但很高兴被告知这可以在2008年完成,或者使用插件。
我所追求的是对Resharper如何做出猜测以及我能做些什么(例如突出显示我想要的收藏品的标识符)的一些了解,以给它一个提示。我会看一下Jetbrains网站,如果我发现任何内容,请在这里更新。
答案 0 :(得分:3)
我真的不太清楚怎么说这个,但你认为你可能要求过多的自动化吗?我的意思是代码片段很好,因为它们减少了重复键入。但是现在你想让它真正猜出你要输入的是什么。它是否应该猜测循环体?
您可能希望通过Developer Express查看CodeRush,它具有更强大的代码生成功能,但我不确定它是否可以执行您的建议。
答案 1 :(得分:1)
使用普通的intellisense键入“ListBox1.Items”,然后按Alt-Enter并选择“使用foreach枚举集合”(不是确切的文本)。
但是,完全是关于ListBox.Items(来自Windows.Forms),它是ObjectCollection类型,它不是强类型的。所以几乎不可能猜出元素的正确类型。对于WPF,Items属性还返回非强类型集合ItemCollection。如果您有强类型或通用集合,ReSharper可以正确推断枚举项类型。