Простой тестовый пример:
using System;
public class Test<T>
{
public enum TestEnum
{
A,
B
}
public Test (TestEnum a = TestEnum.A)
{
DoSomething ();
}
protected void DoSomething()
{
}
}
Компилятор (использует Mono в проекте Unity3D, цель.NET4.0 )выдает ошибку при вызове в Test()
to DoSomething()
. Если я удалю параметр по умолчанию для TestEnum a
, он будет работать нормально. MonoDevelop хочет вызвать параметр по умолчанию TestEnum<>.A
, но это не компилируется, как и TestEnum<T>.A
(. очевидно, я не ожидал, что это сработает, но с помощью автозаполнения MonoDevelop я получил вот что ).
РЕДАКТИРОВАТЬ :конкретная ошибка:the name DoSomething doesn't exists in the current context