2016-09-14 7 views

答えて

1

のように試してみてください、私は私のSamAccountNameの最初の文字を取り、.ToUpperCase()をそれを変換しようとしているが、.ToUpperCase()SamAccountName

private void firstCharToUppercase(Prinicpal principal) 
{ 
    UserPrinicpal user = principal as UserPrincipal; 
    user.SamAccountName[0].toUpperCase(); 
} 
+0

ありがとう、これは仕事を終えた! – BlueBarren

+0

@BlueBarrenあなたは大歓迎です! –

0
private void firstCharToUppercase(Prinicpal principal) 
{ 
    UserPrinicpal user = principal as UserPrincipal; 
    user.SamAccountName[0].ToString().ToUpper(); 
} 

には使用できません返します文字列。

ただし、インデクサーを使用すると、タイプcharとして最初の文字を取得し、タイプはstringではありません。

最初に結果にToString()を呼び出す必要があります。あなたはstringにインデクサーを使用する場合

user.SamAccountName[0].ToString().ToUpper(); 
+0

'.First()'も使用できませんが、 '.ToString()。ToUpper();'は私が追加したので、ありがとう! – BlueBarren

1

、そのインデックスの文字を表す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)は文字列を割り当てません。

+0

Dulyは、感謝しています。 – BlueBarren

関連する問題