IndexOf功能

时间:2010-01-08 21:13:33

标签: c#

我有以下代码,它将获取登录的UserID

System.Security.Principal.WindowsPrincipal p = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;
        //networkID=User.
        string strName = p.Identity.Name;
        int start;
        start = strName.IndexOf("\") + 1 ; 

  strName = strName.Substring(start, strName.Length - start);

但是start = strName.IndexOf(“\”)+ 1;抛出错误说Newline不变。我收到的登录用户名是domainName \ username,我只想使用用户名。请帮忙

5 个答案:

答案 0 :(得分:6)

尝试IndexOf(@"\")IndexOf("\\")

答案 1 :(得分:5)

\是转义字符 - 您必须使用"\\"@"\"才能使其生效。

答案 2 :(得分:1)

你必须加倍escape your backslashes

start = strName.IndexOf("\\") + 1 ; 

答案 3 :(得分:0)

您的反斜杠正在逃避您的上一次报价。使用双反斜杠来逃避反斜杠。

start = strName.IndexOf("\\") + 1 ; 

答案 4 :(得分:0)

\是一个转义字符。您需要使用另一个\转义它或使用逐字字符串文字:

start = strName.IndexOf("\\") + 1 ;

或者:

start = strName.IndexOf(@"\") + 1 ;