0

当使用带有委托的签名调用方法时,使用 Lamba 语法,Visual Studio 2008 将我的任意参数名称替换为自动完成的名称。

private void parseIntCell(DataGridViewCell focusCell, Action<Receipt_Detail, int> recorder)

当我键入以下内容时:

parseDecimalCell(focusCell, 2, ((x,

只要我输入逗号,Visual Studio 就会把它变成

parseDecimalCell(focusCell, 2, ((XmlReadMode,

我最终想要输入的内容

parseDecimalCell(focusCell, 2, ((x,y) => x.Grower_Box_Weight = y));

有什么方法可以配置我的代码或 Visual Studio,这样我就可以输入这些类型的lambas,而无需按 esc 撤消自动完成,同时仍然可以自动完成正常的代码工作?

4

2 回答 2

1

尝试同时按 CTRL+Alt+Space,这不会禁用自动完成,但为了自动完成,您需要从列表中进行选择。

于 2012-04-20T11:50:05.097 回答
1

与其将 lambda 表达式括在括号中,不如将 lambda 函数的主体括在大括号中,如下所示:

private void doSomethingWithADelegate(Action<int, int> myFunc)
{
    // ...
}

void Foo()
{
    int a = 0;
    doSomethingWithADelegate((x, y) => { a = a + x + y; });
}

当我使用这种语法时,Intellisense 在输入“(x”) 后不会尝试进行任何更改。

于 2012-04-20T12:00:00.857 回答