作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一个简单的测试用例:
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()
.如果我删除 TestEnum a
上的默认参数,它构建得很好。 MonoDevelop要调用默认参数TestEnum<>.A
, 但那不会编译,TestEnum<T>.A
也不会(显然我不希望这些工作,但使用 MonoDevelop 的自动完成这就是我得到的)。
编辑:具体错误是:the name DoSomething doesn't exists in the current context
最佳答案
如评论中所述,这是一个编译器错误。
看来您的 Mono 开发环境不太喜欢 protected 关键字。
现在使用{public,private}。
关于c# - 为什么具有默认值枚举参数的泛型类的构造函数无法调用该类的 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995260/
我是一名优秀的程序员,十分优秀!