c# – 列出属性引用的集合

c# – 列出属性引用的集合,第1张

概述考虑这些属性, double _temperature; public double Temperature { get { return _temperature; } set { _temperature = value; } } double _humidity; 考虑这些属性,
double _temperature;        public double Temperature        {            get { return _temperature; }            set { _temperature = value; }        }        double _humIDity;        public double HumIDity        {            get { return _humIDity; }            set { _humIDity = value; }        }        bool _isRaining;        public bool IsRaining        {            get { return _isRaining; }            set { _isRaining = value; }        }

现在我想制作一个像这样的列表/集合/容器,

PropertyContainer.Add(Temperature);  //line1PropertyContainer.Add(HumIDity);     //line2PropertyContainer.Add(IsRaining);    //line3

我想这样做,以后我可能能够使用索引访问属性的当前值,像这样,

object currentTemperature =  PropertyContainer[0];object currentHumIDity    =  PropertyContainer[1];object currentIsRaining   =  PropertyContainer[2];

但显然,这不会起作用,因为PropertyContainer [0]将返回旧值 – 温度在向容器添加温度时所具有的值(参见上面的line1).

有没有解决这个问题的方法?基本上我想统一访问属性的当前值;唯一可以改变的是索引.然而,索引也可以是字符串.

PS:我不想使用Reflection!

解决方法 好吧,你可以使用Lambdas:
List<Func<object>> PropertyAccessors = new List<Func<object>>();PropertyAccessors.Add(() => this.Temperature);PropertyAccessors.Add(() => this.HumIDity);PropertyAccessors.Add(() => this.IsRaining);

那么你可以这样:

object currentTemperature = PropertyAccessors[0]();
总结

以上是内存溢出为你收集整理的c# – 列出/属性引用的集合全部内容,希望文章能够帮你解决c# – 列出/属性引用的集合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1250080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存