这是我第一次在 Stack Overflow 上发帖,所以希望我做的一切都是正确的,你们可以帮忙。
我想知道在 C# 中是否有一种方法可以访问属于一个类的静态变量,当只给出类的类型时。例如:
public class Foo
{
public static int bar = 0;
}
public class Main
{
public void myFunc(Type givenType)
{
int tempInt = ??? // Get the value of the variable "bar" from "Foo"
Debug.WriteLine("Bar is currently :" + tempInt);
}
}
// I didn't run this code through a compiler, but its simple enough
// that hopefully you should get the idea...
很难描述需要知道这一点的背景,但我正在 XNA 中制作游戏,并且我正在尝试使用引用计数来降低设计的复杂性。我在游戏中有物体和可以应用效果的道具(留在物体上)。能量提升可能会消失,但它们的影响仍然会留在对象上,我需要跟踪能量提升的任何影响是否仍然存在于对象上(因此,引用计数)。我计划用一个静态整数创建一个“PowerUpEffect”类(针对每种类型的上电),以保存仍然受它影响的对象的数量,但是游戏其余部分的设计不能很好地通过 PowerUpEffect一直到对象,以便它调用 PowerUpEffect 类的方法。
我希望只传递 PowerUpEffect 的类型(使用类似“typeOf()”之类的东西)并使用该类型来引用属于这些类型的静态变量,但我不知道该怎么做,或者它是否可能。
我什至很高兴找到不直接回答这个问题但以简单而优雅的设计解决问题的变通方法。=)
帮助!(谢谢!)