在 linqpad 中转储静态属性

发布于 2024-10-27 10:16:48 字数 337 浏览 1 评论 0原文

public class Test
{
    public int a = 2;
    public static int b = 5;
    public struct C
    {
        public int d = 9;
        public static int e = 7;
    }
}

new Test().Dump();

上面的代码将转储新创建的对象并将 a 列为属性,但不会列出 b 或嵌套静态结构 C 或任何内容在里面。
如果我有很多自动生成的静态属性,如何转储所有内容?

public class Test
{
    public int a = 2;
    public static int b = 5;
    public struct C
    {
        public int d = 9;
        public static int e = 7;
    }
}

new Test().Dump();

The code above will dump the newly created object and list a as a property but won't list b or the nested static struct C or anything inside of it.
If I have alot of auto generated static properties how do I dump everything?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说谎友 2024-11-03 10:16:48

静态实例变量不是您正在创建的“new Test()”实例的一部分。它们是 Test 类的静态实例的一部分。您可以在此处阅读有关静态类和静态类成员的信息。

您可以使用查看静态变量

(Test.b).Dump();
(Test.C.e).Dump();

希望这会有所帮助。

The static instance variables are not part of the "new Test()" instance that you are creating. They are part of the static instance of of the Test class. You can read up on static classes and Static class members here.

You can see the static variables by using

(Test.b).Dump();
(Test.C.e).Dump();

Hope this helps.

柳絮泡泡 2024-11-03 10:16:48

反射有效

typeof(Test)
.GetFields(BindingFlags.Static | BindingFlags.Public)
.Select(f => new { name = f.Name, value = f.GetValue(null)})
.Dump();

在此输入图像描述

Reflection works

typeof(Test)
.GetFields(BindingFlags.Static | BindingFlags.Public)
.Select(f => new { name = f.Name, value = f.GetValue(null)})
.Dump();

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文