社区
C#
帖子详情
一个类中有静态变量,在程序中能不能使用反射动态取得这个静态变量的值?
hanbaojun
2004-12-10 09:41:12
一个类中有静态变量,在程序中能不能使用反射,动态取得这个静态变量的值?
谢谢!
...全文
474
10
打赏
收藏
一个类中有静态变量,在程序中能不能使用反射动态取得这个静态变量的值?
一个类中有静态变量,在程序中能不能使用反射,动态取得这个静态变量的值? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greennetboy
2004-12-11
打赏
举报
回复
感觉没必要
hanbaojun
2004-12-10
打赏
举报
回复
和这个贴子结合起来:
http://community.csdn.net/Expert/topic/3632/3632317.xml?temp=7.177371E-02
brightheroes
2004-12-10
打赏
举报
回复
为什么一定要使用反射?
hanbaojun
2004-12-10
打赏
举报
回复
我的是意思是在程序里动态呀,也就是说程序执行时类名是变化的,怎样根据这个类名取得这个类中的这个静态变量的值。
jiezhi
2004-12-10
打赏
举报
回复
静态变量你还需要用反射取值么?
jimh
2004-12-10
打赏
举报
回复
应该可以,我没试过
SAsura
2004-12-10
打赏
举报
回复
可以,我用过,和普通的变量一样,反射是忽略object instance的参数值,你随便传吧,只要是这个class的实例就可以,也可以用null
juqiang
2004-12-10
打赏
举报
回复
Type[] typelist = asm.GetTypes();
string s = "";
上面的这两行,只是为了设置断点用的,没有实际意义。
juqiang
2004-12-10
打赏
举报
回复
这是完整的代码,你直接建一个console工程,把代码copy进去,修改命名空间为ConsoleApplication3即可。
using System;
using System.Reflection;
namespace ConsoleApplication3
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Assembly asm = Assembly.GetExecutingAssembly();
Type[] typelist = asm.GetTypes();
Type t = asm.GetType("ConsoleApplication3.Class2");
object obj = Activator.CreateInstance(t);
FieldInfo fi = t.GetField("Hello");
object hello = fi.GetValue(obj);
string s = "";
}
}
class Class2
{
public static string Hello = "World";
}
}
jeffandjeff
2004-12-10
打赏
举报
回复
举个实际你想应用的例子看看到底要干吗
动态
生成
静态
及伪
静态
技术视频教程
本套教程把web系统常见的前台和后台功能从头到尾制作了一遍,实现了asp.net对数据库的增删改查和分页,后台包括了常见的单页模块、新闻模块、产品模块、图片上传等模块,加入了百度编辑器(编辑器按钮可以自定义、可以在编辑器内上传图片),其
中
产品模块可以对任意一个产品自定义属性,每个产品可以有不同的属性,新闻详细页面实现了上一条和下一条新闻的链接,系统首页、单页模块、新闻模块、产品模块全部实现了
动态
生成
静态
,新闻列表、产品列表
使用
伪
静态
技术完成,新闻列表页面还增加了组合查询功能,产品模块导航采用的是无限级分类技术,无论是前台还是后台界面都干净整洁,适合入门学习,个别模块逻辑稍微复杂,基础比较薄弱的学员需要多花点时间消化。开发环境:vs2019+sql2017 (vs和sql仅仅是工具,其他版本的工具也能进行开发,不影响学习)。
问什么
静态
变量
不能
在方法
中
定义
在方法内部定义的叫“局部
变量
”,而不是
静态
变量
,局部
变量
不能
加static,包括protected,private,public这些也
不能
加,而全局
变量
是可以的,
静态
变量
是定义在类
中
,方法体外面的,局部
变量
是保存在栈
中
的,而
静态
变量
保存在方法区,局部
变量
出了方法就会被栈回收了,而
静态
变量
不会,所以局部
变量
前
不能
加static关键字,同一时刻,只可能有一块栈内存被当前方法
使用
,用完了就回收了 可以换一个角度理解,
静态
变量
和常量是在编译时确定的,而方法的局部
变量
是在运行时确定的,也就是说方法是可以变的,当方法
Java为什么
不能
在方法内定义
静态
变量
1.由于JAVA规定,方法内定义的都是局部临时
变量
,且由于内存分配,会创建一个栈帧保存局部
变量
表、操作数栈,
动态
链栈等,在方法结束后,栈帧会出栈并释放掉所有局部
变量
。这个时候定义一个
静态
变量
那会不会造成内存泄漏呢?会的,由于
静态
变量
生命周期同类的对象一致。因此
不能
。 2.在人性化的设计
中
,
静态
变量
大都用来供外界访问或类
中
各个方法共享。你在一个方法
中
定义了一个
静态
变量
,那对于其他方法来说,前者内部是不可见的。且对于外界来说同样也是不可见的。这样便毫无意义。 ...
静态
成员方法
中
不能
定义
静态
变量
。
可能从理解上来说确实有点想不通,但是对比C++仔细分析,是有道理的。 大家都知道,C++
中
是存在全局
变量
的。而在java
中
只有加了public static的
变量
才可以算是全局
变量
。 我们也知道,全局
变量
理论上来说(public static),在程序的任何地方都能访问。那么
静态
成员方法
中
为什么
不能
定义
静态
变量
呢? 全局
变量
上面说过,在程序的任何地方都能访问,我们为什么要把一个全局
变量
定义在...
python的
静态
变量
和
静态
方法
一、
静态
变量
和
静态
方法 1、
静态
变量
和
静态
方法都属于类的
静态
成员,它们与普通的成员
变量
和成员方法不同,
静态
变量
和
静态
方法只属于定义它们的类,而不属于某一个对象。 2、
静态
变量
和
静态
方法都可以通过类名和对象进行访问。 二、
静态
变量
示例 classStaticMenthod: count=0#
静态
变量
,不需要显示的声明 def__init__(self): Stati...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章