如何使用转义字符在C#中构建字符串

如何使用转义字符在C#中构建字符串,c#,.net,C#,.net,我试图通过在需要的地方注入userID和portalID来构建目录路径 string userID = HttpContext.Current.Request.Params["userID"]; string portalID = HttpContext.Current.Request.Params["portalID"]; // This is the acutal path ---> string folderName = @"C:\DotNetNuke 8.0\Portals\0\

我试图通过在需要的地方注入
userID
portalID
来构建目录路径

string userID = HttpContext.Current.Request.Params["userID"];
string portalID = HttpContext.Current.Request.Params["portalID"];

// This is the acutal path ---> string folderName = @"C:\DotNetNuke 8.0\Portals\0\Users\017\17\17";
string folderName = "c:\\DotNetNuke 8.0\\Portals\\" + portalID + "\\Users\\0" + userID + "\\" + userID + "\\" + userID;
HttpContext.Current.Response.Write(folderName);
// This is what's returned ---> c:\DotNetNuke 8.0\Portals\\Users\0\\

最好的方法是使用
Path。组合
方法,如下所示:

string userID = "testuser";
string portalID = "portal";
var path = Path.Combine(@"c:\DotNetNuke 8.0\Portals", portalID, "Users", "0" + userID, userID, userID);

Console.WriteLine(path);
结果将是

c:\DotNetNuke 8.0\Portals\portal\Users\0testuser\testuser\testuser

要查找有关路径的更多信息,请组合检查。

您所拥有的实际上是正确的。它看起来像是
portalID
userId
null
或空字符串
”。不过,还有更简单的转义方法-如果您使用
@“some\string”
,那么您唯一需要转义的就是

示例:

string userID = "17";
string portalID = "0";
string folderName = "c:\\DotNetNuke 8.0\\Portals\\" + portalID + "\\Users\\0" + userID + "\\" + userID + "\\" + userID;
给予

还有:

string folderName = @"c:\DotNetNuke 8.0\Portals\" + portalID + @"\Users\0" + userID + @"\" + userID + @"\" + userID;
string folderName = $@"c:\DotNetNuke 8.0\Portals\{portalID}\Users\0{userID}\{userID}\{userID}";
还有:

string folderName = @"c:\DotNetNuke 8.0\Portals\" + portalID + @"\Users\0" + userID + @"\" + userID + @"\" + userID;
string folderName = $@"c:\DotNetNuke 8.0\Portals\{portalID}\Users\0{userID}\{userID}\{userID}";

我认为您正在寻找“逐字字符串文字”,即引号前的
@
符号。请检查引用:userID和portalID可能为空。要构建路径,请查看路径。合并(…)而不是使用字符串连接。请阅读并解释(用文字,而不是代码中的注释)您期望看到的内容和实际看到的内容。同时解释您尝试过的内容。使用调试器检查变量可以帮您很大的忙。@CodeCaster谢谢您的帮助。您是对的。问题不应该出现在代码注释中。但是,how to ask链接没有具体说明。干杯!您的第二个示例非常有效。不是吗我想知道为什么\\没有做这个把戏。谢谢!