在VB.NET中,使用&连接字符串而不是+?
例如
Dim x as String = "hello" + " there"
Run Code Online (Sandbox Code Playgroud)
与
Dim x as String = "hello" & " there"
Run Code Online (Sandbox Code Playgroud)
是的,我知道我想要使用很多字符串连接StringBuilder,但这更像是一个普遍的问题.
我见过几个程序员使用&和+进行字符串操作.
如:
dim firstvar as string
dim secondvar as string
dim thirdvar as string
thirdvar = firstvar & secondvar
Run Code Online (Sandbox Code Playgroud)
或者是:
thirdvar = firstvar + secondvar
Run Code Online (Sandbox Code Playgroud)
有关系吗?如果是这样,为什么?
我正在准备一个Visual Basic 2005上的一个类,目标是Visual Basic 6程序员迁移到.NET平台.
我想就是否建议他们始终启用Option Strict提出建议.
我专门使用C风格的编程语言,主要是Java和C#,所以对我来说,显式的转换是我一直希望我必须做的事情,因为它从来都不是一个选择.
但是我认识到使用内置支持后期绑定的语言的价值,因为不必过分明确代码中的类型确实可以节省时间.动态类型语言的流行扩散进一步证明了这一点即使在具有动态语言运行时的.NET平台上也是如此.
考虑到这一点,如果第一次使用VB.NET和VB6背景接近.NET的人应该被鼓励进入必须使用编译时类型检查的思维模式,因为这是"最佳实践". CLR?或者继续享受后期约束的好处是"还可以"吗?
问题:
我目前在C#中有以下代码行:
if ((oAEAuthInfo.GetInfo("LetterTo_name") == (oAEAuthInfo.GetInfo("firstname") + " " + oAEAuthInfo.GetInfo("lastname"))) && (oAEAuthInfo.GetInfo("Name")).Contains("OMEGA") || (oAEAuthInfo.GetInfo("Name")).Contains("Alpha"))
Run Code Online (Sandbox Code Playgroud)
它显示我想要的正确.
但是,当我尝试在VB中做同样的事情时:
IF ((oAEAuthInfo.GetInfo("LetterTo_name") = (oAEAuthInfo.GetInfo("firstname") + " " + oAEAuthInfo.GetInfo("lastname"))) And ((oAEAuthInfo.GetInfo("Name")).Contains("Omega") Or (oAEAuthInfo.GetInfo("Name")).Contains("Alpha"))) THEN
Run Code Online (Sandbox Code Playgroud)
它没有显示任何结果.这意味着当我运行我的C#版本的代码时,它会显示一个图像但是对于VB版本,没有任何反应.
我究竟做错了什么?
UPDATE
大家好.我想感谢大家的帮助,并帮助我更好地理解VB.但是,它仍然没有显示任何图像,我不知道为什么.
以下是我正在做的事情.出于某种原因,当我尝试分配变量时,它也没有显示任何结果.任何帮助,将不胜感激.
<table width="100%" CELLSPACING="0" CELLPADDING="0">
<tr>
<td align="center">
<%
IF ((oAEAuthInfo.GetInfo("LetterTo_name") = (oAEAuthInfo.GetInfo("firstname") & " " & oAEAuthInfo.GetInfo("lastname"))) AndAlso ((oAEAuthInfo.GetInfo("Name")).Contains("OMEGA") OrElse (oAEAuthInfo.GetInfo("Name")).Contains("ALPHA"))) THEN
select (oAEAuthInfo.GetInfo("Site"))
case "R107":
case "R0712":
case "R108":
case "R10812":
case "R113":
case "R11312":
case "R115":
case "R11512":
case "R10702":
case "R10802": …Run Code Online (Sandbox Code Playgroud)