2015-05-22 69 views
-3

我不能将运算符& &应用于String和String()类型的操作数,其代码如下。任何人都知道这个问题的原因是什么?不能将运算符&&应用于String和String类型的操作数

If IsValidEmail(EmailAddress) Then 
    EncodedData += "&data[]=" + 
     + HttpContext.Current.Server.UrlEncode(_ 
        (Convert.ToString((Convert.ToString("{""email"":""") _ 
        & EmailAddresses) + """,""name"":""") & Name) + """}") 
End If 
+0

你在你的代码片段中使用了&&? '&&'用于比较而不是连接 –

+3

VB中没有'&&'操作符。你的意思是&&(字符串连接)?如果是这样,那么您传递的变量之一可能就是一串字符串:基于名称EmailAddresses(作为复数形式)似乎是可能的候选者。 – Richard

+1

建议:将表达式分解为多个语句(使用临时变量):这会使理解变得更容易。 – Richard

回答

1

如果EmailAddresses是一个数组,你必须决定如何将潜在的多个值在那里结合起来。

也许,是这样的:

String.Join(";",EmailAddresses) 

于是将地址;分开吗?或者,也许,因为它位于If区块内,该区块会检查一个不同但可能相关的变量,因此您希望此参考文件为EmailAddress而不是EmailAddresses


所以,要么:

EncodedData += "&data[]=" _ 
     & HttpContext.Current.Server.UrlEncode("{""email"":""" _ 
        & String.Join(";",EmailAddresses) & """,""name"":""" _ 
        & Name & """}") 

或:

EncodedData += "&data[]=" _ 
     & HttpContext.Current.Server.UrlEncode("{""email"":""" _ 
        & EmailAddress & """,""name"":""" _ 
        & Name & """}") 

在哪里我也去掉字符串的无谓转换成(更好?)字符串,字符串连接的混合运营商。

相关问题