大家好我有以下代码:
Public Shared Function ConvertToString(ByVal list As IList) As String
Dim strBuilder = New System.Text.StringBuilder()
Dim item As Object
For Each item In list
strBuilder.Append(obj.ToString())
strBuilder.Append(",")
Next
Return strBuilder.ToString(strBuilder.Length - 1)
End Function
目的是将IList的自定义对象转换为包含Ilist中每个元素的字符串。不幸的是,我似乎无法找到获取自定义对象的基础数据的方法,当然,如上例所示,使用对象只是给我一个类型定义的字符串,而不是访问底层数据。任何帮助都非常赞赏。
保罗。
答案 0 :(得分:2)
对象中没有“基础数据”的默认字符串表示形式。这一切都取决于你想看到什么。比如说,你有一个Person类,它有FirstName和LastName属性。你有一个FirstName =“John”和LastName =“Smith”的实例。底层数据的默认表示是什么? “约翰·史密斯”? “史密斯,约翰”?还有别的吗?
那是(我假设)如果你没有覆盖那个方法来显示更有用的东西,那么.NET会在ToString方法中返回类型名称。框架无法知道任何给定类的基础数据的有用表示。
所以我认为你不能让你的方法适用于任意类。如果你想要一个特定的小类,你可以覆盖ToString,因为Paul Sasik建议为它们提供一个有用的字符串表示。或者,如果您无法访问这些类的代码,则可以为所有类添加扩展方法,GetUnderlyingData或类似的东西,并调用该扩展方法而不是ToString。
答案 1 :(得分:0)
如果您可以控制自定义对象,则可以覆盖ToString函数以返回您想要查看的字符串数据类型。
I can't seem to find a way to get the underlying data of the custom object,
为什么?你有什么尝试?你应该能够转换为类型或通过反射得到它。也许你可以向我们展示一些代码?