gpt4 book ai didi

c# - 有没有办法绕过 private 关键字?

转载 作者:行者123 更新时间:2023-11-30 22:10:23 26 4
gpt4 key购买 nike

我有一堆用于调试目的的代码。因此,我用:

#if DEBUG
#endif

问题是这个调试代码需要将其他类的私有(private)变量输出到一个文件中。我可以将调试代码隐藏到每个类中,但这会使现有代码更加困惑,因为我将调试代码与真实代码混合在一起。我可以将所有调试代码放入另一个类中,但这意味着我必须将类中的私有(private)变量公开。

为了调试代码,有什么方法可以忽略 private 关键字吗?我可以使用公共(public) getter,但这违背了不让真实代码更加困惑的目的。

最佳答案

  1. 是否可以将它们设为内部而不是私有(private)?
  2. 使用 dynamic关键词:

    动态 foo = yourObjectWithPrivateFields;int privateValue = (int)foo.yourPrivateField;

  3. 使用反射:typeof(YourObject).GetField(fieldName, bindFlags).GetValue(yourObjectWithPrivateFields);

关于c# - 有没有办法绕过 private 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com