Kei*_*A45 3 c# xna reference-counting
这是我第一次在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...
Run Code Online (Sandbox Code Playgroud)
很难描述需要知道这一点的背景,但我正在XNA中制作游戏,我正在尝试使用引用计数来降低设计的复杂性.我在游戏和强化中有对象可以应用它们(留在对象上).上电可能会死亡,但它们的影响仍然可以在物体上停留,我需要跟踪上电中是否有任何影响仍在物体上停留(因此,引用计数).我打算用一个静态整数制作一个"PowerUpEffect"类(对于每种类型的加电),保存仍然受其影响的对象数量,但是传递PowerUpEffect时游戏其余部分的设计效果不佳一直到对象,它调用PowerUpEffect类的方法.
我希望只传递PowerUpEffect的类型(使用类似"typeOf()"的东西)并使用该类型来引用属于这些类型的静态变量,但我不知道如何做或者甚至可能.
我很高兴甚至找到不能直接回答这些问题的解决方案,而是通过简单而优雅的设计解决问题.=)
救命!(谢谢!)
如果您只有Type句柄,则可以执行以下操作:
var prop = givenType.GetProperty("bar");
var value = prop.GetValue(null);
Run Code Online (Sandbox Code Playgroud)