根据Microsoft文档,要确定str中的字符数,请使用Len函数。如果在Windows窗体或具有Right属性的任何其他类中使用,则必须使用" Microsoft.VisualBasic.Strings.Right"完全限定该函数。
如果我设置" Imports Microsoft.VisualBasic"在表单的顶部,我仍然需要在我的代码中使用完全限定的名称。为什么MS需要这个?
答案 0 :(得分:3)
因为没有完全限定名称,如果有两个具有相同名称的方法,则编译器不能选择其中一个。因此,您应该注意提供正确提示的问题
为了简化您的输入,您可以在代码文件的顶部添加此版本的Imports statement
Imports VB6 = Microsoft.VisualBasic
然后你可以输入
Dim stringLen = VB6.Len(yourStringVariable)
VB.NET中的This is the MSDN introduction to Namespaces,特别是在文章的第一行中解释了你的问题避免命名空间冲突
.NET Framework命名空间解决了有时称为命名空间的问题 污染,一个类库的开发人员受到阻碍 在另一个库中使用类似的名称。与这些冲突 现有组件有时称为名称冲突。
例如,如果您创建一个名为ListBox的新类,则可以使用它 你的项目内没有资格。但是,如果你想使用 在同一个项目中的.NET Framework ListBox类,必须使用 完全限定参考,使参考唯一。如果 引用不是唯一的,Visual Basic会产生一个错误说明 这个名字含糊不清。
顺便说一句,开始使用Right,Left和Len的等效框架方法。 它们仍然只能用于帮助移植旧的VB6应用程序(有时它们的工作方式不同)。在新的应用程序中,我建议使用
string.Substring(start, len)
string.Length
答案 1 :(得分:1)
winform Form
(源自Control
)具有名为Right
和Left
的属性。
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
因此,您需要使用完整的限定名称。