首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在调试时评估全局方法和字段?

如何在调试时评估全局方法和字段?
EN

Stack Overflow用户
提问于 2018-05-13 05:01:36
回答 1查看 501关注 0票数 1

通过CIL编辑,人们可以添加不属于任何类或命名空间的方法和字段。

在程序集中,有一个类internal class <Module>,它包含所有这些全局变量。可以使用IL工具(Mono.Cecil、dnlib)或反编译工具(dnSpy)查看这些方法代码和字段。

有没有办法在Visual Studio中评估或查看调试中的值?

EN

回答 1

Stack Overflow用户

发布于 2018-05-13 11:37:02

要做到这一点,最简单的方法是只有一个public static class Globals,并在那里存储所有的全局变量。

然后,在所有文件中执行using static Globals。(如果名称空间中存在Globals,则必须使用其全名)。using static <ClassName>让您无需指定类即可使用所有静态字段和方法,使它们看起来要么属于当前类,要么看起来像是全局变量,例如:

代码语言:javascript
复制
public static class Globals
{
    public int GlobalInt { get; set; } = 42;
    public int GlobalMethod() => 42;
}

不使用using static

代码语言:javascript
复制
public void Main(string[] args)
{
    Console.WriteLine(Globals.GlobalInt);
    Console.WriteLine(Globals.GlobalMethod);
}

使用using static

代码语言:javascript
复制
using static Globals;

public void Main(string[] args)
{
    Console.WriteLine(GlobalInt);
    Console.WriteLine(Globals.GlobalMethod);
}

也就是说,使用全局变量通常被认为是不好的做法(这就是为什么C#没有它们),因为任何类都可以更改它的值,而且很容易松散跟踪。但是,全局常量、全局readonlys或带有私有setter的全局属性都很好。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50310638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档