的成员,而试图让左2个字符一个字符串的我得到的消息:左边是不是microsoft.visualbasic.strings
“左”的NOG“Microsoft.VisualBasic.Strings”中的一员
现在直到今天,我总是认为这将是最简单的事情来解决。但是......
下面是我使用的代码:
If Strings.Left(ActivityCode, 2) = Selection Then
而这一切就是这么简单!这里有什么问题?
Peter
的成员,而试图让左2个字符一个字符串的我得到的消息:左边是不是microsoft.visualbasic.strings
“左”的NOG“Microsoft.VisualBasic.Strings”中的一员
现在直到今天,我总是认为这将是最简单的事情来解决。但是......
下面是我使用的代码:
If Strings.Left(ActivityCode, 2) = Selection Then
而这一切就是这么简单!这里有什么问题?
Peter
为什么不使用.NET字符串方法呢?
Dim leftTwo = If(activityCode.Length <= 2, activityCode, activityCode.Remove(2))
If leftTwo = Selection Then
' ... '
End If
对于它的价值,你还可以创建,如果你错过了这个方法的扩展:
If activityCode.Left(2) = Selection Then
' ...'
End If
@TimSchmelter干得好! .Net字符串方法是解决方案。并回答你最初的问题:为什么我不使用这个?因为我使用了“旧”的语法,直到现在才起作用。没有更多的论据。你的扩展方法似乎有点矫枉过正......但无论如何谢谢你的建议! – 2014-10-09 20:36:31
用途:
Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()>
Public Function Left(Str As String, takeLeft As Int32) As String
If takeLeft < 0 Then Throw New ArgumentException("takeLeft must be greater than or equal 0", "takeLeft")
If Str Is Nothing Then Return Nothing
If Str.Length <= takeLeft Then Return Str
Return Str.Remove(takeLeft)
End Function
End Module
现在你可以通过这种方式使用它它这样:
Dim TestString As String = "Hello World!"
' Returns "Hello".
Dim subString As String = Microsoft.VisualBasic.Left(TestString, 5)
但是y ou应该真的使用.NET方法,如.SubString()
根据给出的建议进行更深入的调查(谢谢大家!!!)我认为解决方案的关键在于我的原始码字段是Windows 8.1商店应用程序项目。我没有意识到Microsoft.VisualBasic库在这类项目中显然不可用。所以我必须切换到语法的.NET变体。
所以,尽管有建议说它必须工作,但它似乎是不可能的。
我对不对?
难道只是'左(....)'? – 2014-10-07 21:27:00
放开你的Visual Basic过去。拥抱现在。 'ActivityCode.Substring(0,2)' – LarsTech 2014-10-07 21:30:25
从Strings.Left上面的建议的一部分应该也可以工作 – Steve 2014-10-07 21:32:06