行。现在这个很有趣。哈文以前从未见过这个。在下列情况下如何使用Concat-Assign运算符(&=
)?
Session("MyKey") &= "some string" 'Option Strict prohibits operands of type Object and String
看起来我甚至无法将LHS转换为String:
DirectCast(Session("MyKey"), String) &= "some string" 'Cannot assign becuz LHS is a value
我甚至无法做到这一点:
Dim s as String = Session("MyKey").ToString()
s &= "some string" 's is a new animal. Doesn't affect Session("MyKey")
我知道可以通过简单的Session("MyKey") = Session("MyKey").ToString() & "some string"
轻松完成,但只是想确保我不会错过一些非常基本的东西。
答案 0 :(得分:1)
你不会错过任何荒谬可笑的东西。会话变量的处理方式与Object类型的任何其他变量一样。您不能在作业的目标上使用DirectCast或ToString等运算符(即在赋值语句的左侧)。将要分配的字符串连接到字符串变量(或字符串构建器),并将结果分配给会话变量。
Dim str As String = ""
If IsNothing(Session("MyKey")) = False Then str = Session("MyKey").ToString
str &= "some string"
Session("MyKey") = str