SamAccountName
的{{1}}属性是否不返回字符串?我正在尝试使用UserPrincipal
的第一个字符并将其转换为SamAccountName
,但.ToUpperCase()
<{1}}不可用.ToUpperCase()
SamAccountName
答案 0 :(得分:1)
正如documentation清楚地表示的那样,SamAccountName
返回一个字符串。
但是,通过使用索引器,您将第一个字符检索为char
类型,而不是类型string
。
您需要先在结果上调用ToString()
。
user.SamAccountName[0].ToString().ToUpper();
答案 1 :(得分:1)
在string
上使用索引器时,它将返回表示该索引处字符的char
。类型char
确实有ToUpper
方法,但它是静态的。我不知道为什么.NET团队选择使string.ToUpper
非静态和char.ToUpper
静态。
试试这个:
private void firstCharToUppercase(Prinicpal principal)
{
UserPrinicpal user = principal as UserPrincipal;
char.ToUpper(user.SamAccountName[0]);
}
此方法最好使单个字符大写,而不是先在字符上调用ToString()
。 ToString()
分配一个字符串,以后需要再次进行垃圾回收,而char.ToUpper(char)
则不会。
答案 2 :(得分:0)
private void firstCharToUppercase(Prinicpal principal)
{
UserPrinicpal user = principal as UserPrincipal;
user.SamAccountName[0].ToString().ToUpper();
}
试试这个