7

一个简单的测试用例:

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

4

1 回答 1

1

正如评论中所说,这是一个编译器错误。

看来您的 Mono 开发环境并不真正喜欢受保护的关键字。

现在使用 {public,private}。

于 2012-08-24T05:41:20.633 回答