【问题标题】:Visual Studio 11 CTP3 bugs?Visual Studio 11 CTP3 错误?
【发布时间】:2023-03-26 23:28:01
【问题描述】:

Visual Studio 11 预览错误?

我尝试编译以下示例并收到意外的编译错误。

示例 1:

async = System.Threading.Tasks.Task;
partial = System.Threading.Tasks.Task;

class C
{

    async async async(async async) { } // ok

    async partial async(async async) { } // error CS1002: ; expected
}

示例 2:

using System.Threading.Tasks;

class C
{
    delegate Task<dynamic> ady(dynamic i);

    delegate Task adv();

    void f()
    {

        ady d11 = new ady(async j => await j); // ok

        ady d12 = new ady((async j => await j)); // error CS0149: Method name expected

        ady d21 = new ady(async (j) => await j); // ok

        ady d22 = new ady((async (j) => await j)); // error CS0149: Method name expected

        adv d31 = new adv(async () => { dynamic d = 0; await d; }); // ok

        adv d32 = new adv((async () => { dynamic d = 0; await d; })); // error CS0149: Method name expected

        adv d41 = new adv(async delegate { }); // ok

        adv d42 = new adv((async delegate { })); // error CS0149: Method name expected

        adv d61 = new adv(async delegate { }); // ok

        adv d62 = new adv((async delegate { })); // error CS0149: Method name expected

        ady d71 = new ady(async delegate(dynamic d) { return await d; }); // ok

        ady d72 = new ady((async delegate(dynamic d) { return await d; })); // error CS0149: Method name expected
    }
}

【问题讨论】:

标签: c# async-ctp c#-5.0


【解决方案1】:

自从

var a = new Action((() => {}));

在 VS 2010 中无法编译,我认为示例 2 不是错误。或者如果是,它与async无关。

奇怪的是,Resharper 并没有将其标记为错误并且

Action a = (() => {});

确实有效。

【讨论】:

  • 是的,VS2010 不会编译你的例子。但是 C# 规范说只有括号内的命名空间或类型名称是非法的。
猜你喜欢
  • 2014-11-26
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多