将类设置为 IEnumerable 并获取类型
本文关键字:获取 取类型 IEnumerable 设置 | 更新日期: 2023-09-27 18:30:30
一直在搜索和尝试不同的事情,但似乎无法使其正常工作。
所以,这是基础知识...
namespace Model
{
[Serializable]
public class SomeMDL : IEnumerable<string>
{
public int ID { get; set; }
public int Volumne { get; set; }
public int Size { get; set; }
}
public IEnumerator<string> GetEnumerator()
{
yield return ID.ToString();
yield return Volume.ToString();
yield return Size.ToString();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
然后调用类:
Model.SomeMDL mdl = new Model.SomeMDL();
mdl.ID = 1;
mdl.Volume = 2;
mdl.Size = 2;
string myVar;
foreach (string item in mdl)
{
//myVar = item.GetType().ToString();
//myVar = item.GetEnumerator().GetType().Name.ToString();
//myVar = item.GetEnumerator().GetType().FullName.ToString();
//myVar = item.GetEnumerator().GetType().DeclaringType.FullName.ToString(); //null ref
myVar= item.ToString(); //gets the value
}
我正在寻找的是一种不仅带回价值的方法,这是项目。ToString(),但我需要知道它正在读取哪个公共 int。是 ID、卷还是大小?
需要返回类型(ID、卷或大小)的字符串。
谢谢
除非我在这里错过了您的代码,否则您似乎误用/误解了IEnumerable
接口的基本概念。 IEnumerable
用于表示一组相同类型的对象,然后可以对其进行迭代。您所做的只是生成类中的每个属性 - 有什么意义?如果您需要任何一个属性,为什么不正常访问它呢?你认为允许自己和他人盲目地迭代你的三个属性会得到什么?