利用反射获取静态变量值的问题.

threadroc 2016-06-13 08:35:58

public class SVC()
{
public static int count=0;
}
private void test118(object obj,string name)
{
while (true)
{
Thread.Sleep(1);
Console.WriteLine(obj.GetType().GetFields().FirstOrDefault(f => f.Name == name).GetValue(obj));
}
}

private void buttonLogin_Click(object sender, EventArgs e)
{
//现有SVC类,里面存的是一些静态变量,我通过test118方法,传过去该类的实例和该类的一个变量名称,
//然后不断循环输出SVC.count的值,在循环里要想获取值每次都要用反射,
//有没有可能在循环外声明一个int b随着SVC.count的值改变而改变; 因为这样我就可以直接Console.WriteLine(b)了;
test118(new SVC(),"count");
}
...全文
521 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我非常奇怪,为什么要new一个静态变量的实例。你既然已经知道SVC的类名,也知道了静态的count属性,直接SVC.count不就能访问了吗?为什么要用反射呢?
龍过鸡年 2016-06-13
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
学点“事件”概念,不要胡乱整。你将来可能会“害”很多同学(例如去给他们推销你的编程或者软件维护入门小册子),我先提前3年把话“放在这里”。
哈哈,看完问题感觉楼主有点邪恶
  • 打赏
  • 举报
回复
学点“事件”概念,不要胡乱整。你将来可能会“害”很多同学(例如去给他们推销你的编程或者软件维护入门小册子),我先提前3年把话“放在这里”。
Poopaye 2016-06-13
  • 打赏
  • 举报
回复
我觉得你最好说点实际的需求 现在这样描述太抽象了 首先静态变量为何要传实例? 另外,你要明白,int是valuetype,任何2个int都是不同的实例 要保持一致得是引用类型,你可以自定义一个类来代替int的操作 比如:
class MyIntClass
{
    int _v;
    public static implict operator int(MyIntClass myInt)
    {
        return myInt._v;
    }
    public static implict operator MyIntClass (int i)
    {
        return new MyIntClass { _v = i };
    }
    //还有equals,tostring,==,!=
}
threadroc 2016-06-13
  • 打赏
  • 举报
回复
SVC后面多了个括号...

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧