这个问题是出于好奇。有区别吗:
public abstract class MyClass
{
public MyClass()
{
}
}
和
public abstract class MyClass
{
protected MyClass()
{
}
}
谢谢。
最佳答案
它们在所有实际用途中都是相同的。
但由于您要求差异,我能想到的一个差异是,如果您使用反射搜索类的构造函数,那么匹配的 BindingFlags 将不同。
BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;
var constructor = typeof(MyClass).GetConstructor(flags, null, new Type[0], null);
这会在一种情况下找到构造函数,但不会在另一种情况下找到构造函数。
关于c# - 抽象类的 protected 与公共(public)构造函数?有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532233/