Я воспроизвел сбой, используя VS2010 (WinXP 64).
Два обходных пути:
1.не используйте using
псевдоним
Следующий код корректно компилируется на VS2010:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Func<dynamic, dynamic, dynamic> True = (a, b) => a;
Func<dynamic, dynamic, dynamic> False = (a, b) => b;
Func<Func<dynamic, dynamic, dynamic>,
Func<dynamic, dynamic, dynamic>,
Func<dynamic, dynamic, dynamic> > And
= (x, y) => x(y(True, False), False);
}
}
}
2.используйте компилятор Mono
Нет проблем с компилятором Mono 2.10 (dmcs).
[mono] /tmp @ dmcs test.cs
test.cs(18,42): warning CS0219: The variable `And' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
[mono] /tmp @ ./test.exe
[mono] /tmp @
Это было проверено на Linux.
- Вы можете запускать двоичные файлы, созданные с помощью mono, в Windows .NET.
- Моно-компилятор поставляется с установщиком MSI и также работает в Windows.