Я думаю, что сообщение об ошибке является общим, и поэтому рассматривается для различных видов сбоев. Однако проблема, которую я описал, кажется, возникает для всех, а не только для меня, поэтому я сомневаюсь, что это связано с переменной LIB.
жете считать это сообщением об ошибке, однако мне любопытно, если я здесь ужасно ошибаюсь, или если есть объяснение от Эрика или кого-то еще в Microsoft.
ОбновитьЭто - сейчасопубликовано как ошибка в Microsoft Connect.
ОписаниеРассмотрим следующий класс:
class A
{
public object B {
set { }
}
}
Вот,A.B
этотолько для записи но в остальном прекрасная собственность.
Теперь представьте, что мыназначить его внутри выражения:
Expression<Func<A>> expr =
() => new A {
B = new object { }
};
Этот код делает компилятор C # (оба3,5.30729.4926 и4,0.30319.1) выплюнуть
Внутренняя ошибка компилятора (0xc0000005 по адресу 013E213F): вероятный виновник - «BIND».
и сбой.
Тем не мение,просто заменив синтаксис инициализатора объекта ({ }
) с помощью конструктора (( )
) компилируется просто отлично.
using System;
using System.Linq.Expressions;
class Test {
public static void Main()
{
Expression<Func<A>> expr =
() => new A {
B = new object { }
};
}
}
class A {
public object B { set { } }
}
(И да, ясделал ударил его, работая над реальным проектом.)