[英]Little help in translating C# code to Vb.net
我在代码项目中找到的项目中使用了自定义listview控件。 此控件具有ImageGetter的属性,该属性用于将图像设置为列。 作者提供了使用它的示例,但是它是用C#编写的。 我尝试使用在线转换器,但是它们所有人都无法翻译该代码,并且该代码的作者未提供要求提供VB.net代码的问题的答案。 因此,我需要一些将以下代码转换为VB.Net。
this.olvColumn18.ImageGetter = delegate(object row) {
if ("AEIOU".Contains(((Person)row).Name.Substring(0, 1)))
return 0;
else if (((Person)row).Name.CompareTo("N") < 0)
return 1;
else
return 2;
};
另外我想问什么是代表? 这是功能还是其他功能? 这是控制的链接
http://www.codeproject.com/Articles/16009/A-Much-Easier-to-Use-ListView
您不必使用匿名委托。 您可以简单地创建一个函数并使用AddressOf
,如本文中所示。
Private Function PersonColumnImageGetter(object rowObject) As Object
Dim p As Person = DirectCast(rowObject, Person)
If "AEIOU".Contains(p.Name.Substring(0, 1)) Then
Return 0
Else If p.Name.CompareTo("N") < 0 Then
Return 1
Else
Return 2
End If
End Function
您可以使用分配它(代码项目文章使用this
,但是对于VB.NET是错误的,请改用Me
):
Me.personColumn.ImageGetter = New ImageGetterDelegate(AddressOf PersonColumnImageGetter)
或者,如果您想使用匿名委托:
Me.personColumn.ImageGetter = Function (object rowObject) As Object
Dim p As Person = DirectCast(rowObject, Person)
If "AEIOU".Contains(p.Name.Substring(0, 1)) Then
Return 0
Else If p.Name.CompareTo("N") < 0 Then
Return 1
Else
Return 2
End If
End Function
我建议您阅读VB.NET文档(如果需要,还阅读C#文档)如何编写东西。 通常,两种语言都提供MSDN上的代码示例,因此学习这两种语法非常容易。
这是一个通用的解决方案:在调试模式下编译代码,然后使用Reflector之类的工具将其反编译为另一种语言。 这就是.NET的魅力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.