【发布时间】:2014-03-13 21:46:49
【问题描述】:
是否可以访问抽象类的字段和/或常量? 假设我有代码:
public abstract class A
{
private int A;
private int B;
public const int months = 12;
public int AProp
{
get{ return A; }
set{ A = value; }
}
public abstract void DoSomething();
}
是否可以通过反射检索字段和常量?如果是的话,你能建议怎么做吗?而且,有没有更好的方法来做到这一点?
【问题讨论】:
-
当你问,有没有比反射更好的方法,这取决于你试图用抽象类做什么。你能详细说明一下吗?
-
@LordTakkera 我只是说是否有办法在不使用反射的情况下做到这一点。抱歉措辞不佳。
-
@PBrenek 如果您可以访问该变量,那么 private 修饰符的意义何在?
-
如果它们受到保护,您可以从派生类访问它们,如果它们是公共的,则可以从外部访问它们(当然私有的更棘手)。所以,是的,你可以不加反思地做到这一点。您希望“如何”访问它的用例将使我能够告诉您该场景是否可行。
-
您是在谈论从类的特定实例(在我们的例子中是子类)中检索它们吗?或者你想做像 Abstract.months 这样的事情吗?
标签: c# reflection