guwwww 2022-02-17 15:55 采纳率: 50%
浏览 256
已结题

C#中GetType().GetField() 未将对象引用设置到对象的实例

问题遇到的现象和发生背景

GetType().GetField()运行时提示"未将对象引用设置到对象的实例"
GetType().GetField("Comp1") 监视窗口显示是空值

问题相关代码,请勿粘贴截图
        double Comp1 = 10; double Comp2 = 30; double Comp3 = 100;

        for (int i = 0; i < 3; i++)
        {
            double val = (double)this.GetType().GetField("Comp" + (i + 1).ToString()).GetValue(this);
        }
  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-02-17 17:26
    关注

    GetField加上BindingFlags,没传递测试了下私有的属性获取不到。示例代码如下

    img

    using System;
    using System.Reflection;
    namespace ConsoleApp2
    {
        class A
        {
            double Comp1 = 10;
            double Comp2 = 30;
            double Comp3 = 100;
            public void GetValue()
            {
    
                for (int i = 0; i < 3; i++)
                {
                    double val = (double)this.GetType().GetField("Comp" + (i + 1).ToString(), BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this);
                    Console.WriteLine(val);
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                var a = new A { };
                a.GetValue();
    
                Console.ReadKey();
            }
        }
    }
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月17日

悬赏问题

  • ¥30 dbLinq最新版linq sqlite
  • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模
  • ¥20 用vivado写数字逻辑实验报告撰写,FPGA实验