Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用foreach枚举自定义对象值_C#_Ienumerable - Fatal编程技术网

C# 使用foreach枚举自定义对象值

C# 使用foreach枚举自定义对象值,c#,ienumerable,C#,Ienumerable,我读了好几篇帖子,似乎都找不到解决办法。我有一个自定义类: public class DBValues { public DateTime DB_MfgDateTime; public string DB_PartNumber; public string DB_LotNumber; public string DB_BayResult; public string DB_BrakeSwitch; public string DB_S

我读了好几篇帖子,似乎都找不到解决办法。我有一个自定义类:

public class DBValues

{
     public DateTime DB_MfgDateTime;
     public string DB_PartNumber;
     public string DB_LotNumber;
     public string DB_BayResult;
     public string DB_BrakeSwitch;
     public string DB_SpeedSwitch;
     public string DB_RTC;
     public string DB_RFID;
     public string DB_TestSpin;
     public string DB_LEDs;
     public int DB_LedADC;
     public string DB_48Vstate;
     public double DB_48V;
     public string DB_12Vstate;
     public double DB_12V;
     public double DB_PLCV;
     public double DB_OpAmpV;
     public string DB_HandleUID;
     public string DB_StationID;
     public string DB_BayNumber;
     public string DB_VerifyMfgInfo;
     public DateTime DB_BuildTime;
     public string DB_FWVerify;
     public string DB_FWVersion;};

DBValues db = new DBValues();
在整个过程中,我分配如下值:db.db_SpeedSwitch=“PASS”;我不想从根本上改变我赋值的方式,但我想为了调试的目的而吐出这些值。比如:

foreach (var val in db)
{
    Debug.WriteLine(val.ToString();
}
我尝试实现IEnumerable并创建一个新的DBValues列表,但我的GetEnumerator被OverflowException阻塞了。我明白了原因,但不知道如何解决。我读过关于赎回权和收益率回报的报道,但那也不可行

     public IEnumerator<DBValues> GetEnumerator()
     {

        //throw new NotImplementedException();
        foreach (var item in ??????)
        {
           yield return item;
        }
        //return GetEnumerator();
     }

     IEnumerator IEnumerable.GetEnumerator()
     {
        //throw new NotImplementedException();
        return GetEnumerator();
     }
public IEnumerator GetEnumerator()
{
//抛出新的NotImplementedException();
foreach(项目中的var项目)
{
收益回报项目;
}
//返回GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
//抛出新的NotImplementedException();
返回GetEnumerator();
}

需要帮助

您可以将反射用于此类目的。尝试这样做:

FieldInfo[] fields = db.GetType().GetFields(BindingFlags.Public | 
                                          BindingFlags.NonPublic | 
                                          BindingFlags.Instance);
foreach(var field in fields)
{
    Debug.WriteLine(field.GetValue(db));
}

您可以将反射用于此类目的。尝试这样做:

FieldInfo[] fields = db.GetType().GetFields(BindingFlags.Public | 
                                          BindingFlags.NonPublic | 
                                          BindingFlags.Instance);
foreach(var field in fields)
{
    Debug.WriteLine(field.GetValue(db));
}

请把你的收藏品寄出去。我不确定你想做什么…c不是javascript。。。默认情况下,类是不可枚举的,而且,可枚举类通常不会遍历类本身的属性(通常使用foreach遍历集合)。正如其他人所建议的,您可以使用反射来获得类似的结果。请发布您的收藏。我不确定你想做什么…c不是javascript。。。默认情况下,类是不可枚举的,而且,可枚举类通常不会遍历类本身的属性(通常使用foreach遍历集合)。正如其他人所建议的,您可以使用反射来实现类似的结果。这非常简单!我应该早点问的!那太容易了!我应该早点问的!