在VB.NET中,MS是否需要Right或Left字符串函数的完全限定函数名



根据Microsoft文档,要确定str中的字符数,请使用Len函数。如果在Windows窗体或任何其他具有Right属性的类中使用,则必须使用"Microsoft.VisualBasic.Strings.Right"完全限定该函数。

如果我在表单顶部设置"Imports Microsoft.VisualBasic",我仍然需要在代码中使用完全限定的名称。为什么MS需要这个?

因为,如果没有完全限定的名称,如果有两个方法具有相同的名称,编译器就无法选择其中一个。所以你应该注意给出正确提示的问题

为了便于输入,您可以在代码文件的顶部添加此版本的Imports语句

Imports VB6 = Microsoft.VisualBasic

然后你可以键入

Dim stringLen = VB6.Len(yourStringVariable)

这是MSDN对VB.NET中命名空间的介绍,特别是在文章的第一行中解释了您的问题避免命名空间冲突

NET Framework命名空间解决了一个有时称为命名空间的问题污染,类库的开发人员受到在另一个库中使用相似的名称。这些与现有组件有时被称为名称冲突。

例如,如果创建了一个名为ListBox的新类,则可以使用它在没有资格的情况下进入您的项目。但是,如果您想使用对于同一项目中的.NET Framework ListBox类,必须使用完全限定的引用,使引用具有唯一性。如果引用不是唯一的,Visual Basic会产生一个错误,说明名称不明确。

顺便说一句,开始使用Right、Left和Len的等效框架方法。它们仍然只能用于帮助移植旧的VB6应用程序(有时它们的工作方式不同)。在新的应用中,我建议使用

string.Substring(start, len)
string.Length

winformForm(源自Control)具有名为RightLeft的属性。

Public Class Form1
Inherits Form
Public Sub Test()
Dim location_left As Integer = Me.Left
Dim location_right As Integer = Me.Right
'Or simply:
location_left = Left '<- (Referring to Me.Left, not Microsoft.VisualBasic.Strings.Left)
location_right = Right '<- (Referring to Me.Right, not Microsoft.VisualBasic.Strings.Right)
End Sub
End Class

因此,您需要使用完整的限定名称。

相关内容

最新更新