一个简单的测试用例:
using System;
public class Test<T>
{
public enum TestEnum
{
A,
B
}
public Test (TestEnum a = TestEnum.A)
{
DoSomething ();
}
protected void DoSomething()
{
}
}
编译器(在 Unity3D 项目中使用 Mono,.NET4.0 目标)在Test()
调用DoSomething()
. 如果我删除了 on 的默认参数TestEnum a
,它会构建得很好。MonoDevelop 想要调用默认参数TestEnum<>.A
,但它不会编译,也不会TestEnum<T>.A
(显然我不希望这些能工作,但使用 MonoDevelop 的自动完成功能就是我得到的)。
编辑:具体错误是:the name DoSomething doesn't exists in the current context