gpt4 book ai didi

C# 从集合类访问对象的属性

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:54 25 4
gpt4 key购买 nike

我正在从 VB 转向 C#。我试图遍历一个集合类,它是数据类的集合,但我似乎无法从数据类属性中获取实际值(找到正确的代码来这样做)。我有一个循环遍历集合类(联系人)并保存每条记录(联系人)的方法。我正在使用反射,因为我的方法不知道它是 Contacts 类还是 Customer 类等等。这是我在 VB 中的代码(淡化)

Public Function SaveCollection(ByVal objCollection as Object, ByVal TableName as string, ByVal spSave as string)

Dim objClass as Object
Dim propInfo as PropertyInfo

For Each objClass in objCollection

propInfo = objClass.GetType.GetProperty("TableFieldName")


Next

End Function

我在 C# 中遇到 objClass.GetType.GetProperty("TableFieldName") 行的问题

这是我的C#代码

public in SaveCollection(DictionaryBase objCollection, string TableName, string spSave)
{
PropertyInfo propInfo;

foreach (DictionaryEntry objClass in objCollection)
{
propInfo = objClass.GetType().GetProperty("TableFieldName")

}

}

C# 代码不断返回 null。在我的本地窗口中,我可以看到 objClass 类的属性和属性的值,但我似乎可以弄清楚如何通过代码访问它。我使用了 DictionaryBase,因为它似乎非常符合我需要做的事情。我的数据类(联系人)有一堆或属性与联系人表数据库中的字段名称匹配。获得 propInfo 变量集后,我用字段名、数据类型等设置我的 SQLParameter,然后将值设置为 propInfo.value。

感谢您的帮助。

最佳答案

看起来您正在将不同的集合传递给 VB 代码和 C# 代码。我的猜测是,在 VB 代码中,您传递的是字典的值,而在 C# 中,您传递的是字典本身。尝试将 C# 行更改为以下内容

propInfo = objClass.Value.GetType().GetProperty("TableFieldName");

关于C# 从集合类访问对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977184/

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