foreach (string di_child in dirs) {
Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive + di_child.Name + "/\">" + di_child.Name + "</a>\n");
}
VS 抱怨运算符“+”不能应用于“字符串”类型的操作数和方法组。
我只想连接这些字符串。我怎样才能做到这一点?提前致谢
foreach (string di_child in dirs) {
Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive + di_child.Name + "/\">" + di_child.Name + "</a>\n");
}
VS 抱怨运算符“+”不能应用于“字符串”类型的操作数和方法组。
我只想连接这些字符串。我怎样才能做到这一点?提前致谢
一个问题:
您正在迭代字符串值并连接 string.Name。我认为字符串上没有任何属性“名称”。
您可以简单地使用StringBuilder.Append()
,如下所示:-
StringBuilder sb = new StringBuilder();
sb.Append(someString);
或试试这个:
"\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
我怀疑这drive
实际上是一个函数,在这种情况下你应该这样称呼它:
"\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
尝试这个 :
foreach (string di_child in dirs) {
Response.Write(String.Format("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"{0}{1}/\">{2}</a>\n",drive,di_child.Name,di_child.Name));
}
出现错误消息是因为drive
ordi_child.Name
是一种方法而不是字符串。
在您的 foreach 循环中,您声明di_child
为 astring
并且Name
不是string
.
你能确认驱动器的类型吗?如果它是一个函数,您可能需要将其用作drive()
.
这个问题实际上可能是因为编译器正在使用扩展方法作为名称,而您只需要使用di_child
而不是di_child.Name
您在其中一条评论中说 drive 是 DriveInfo 局部变量
假设 di_chld 是一个字符串变量,并且假设 DriveInfo 类有一个 Name 属性,我猜你在错误的事情上调用 .Name 所以我猜你应该有这个:
Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive.Name + di_child + "/\">" + di_child + "</a>\n");
正如某些人所建议的那样,通常最好使用 String.Format 或 StringBuilder 进行字符串连接