C#プログラミング言語(C#4.0をカバー)(第4版)、1.3タイプと変数、9ページ。
ジョンスキートは言います;
バイトが符号なし型であることに感謝します!Javaでバイトが署名されている(そして署名されていない同等のものがない)という事実は、多くのビットを無意味にいじくり回してエラーを起こしやすくします。私たち全員が私たちよりもはるかに多くのuintを使用する必要がある可能性は十分にあります。注意してください。多くの開発者は、整数型が必要な場合、デフォルトでintに到達すると確信しています。もちろん、フレームワークの設計者もこのカテゴリに分類されます。String.Lengthに署名する必要があるのはなぜですか。
String.Lengthを逆コンパイルすると;
/// <summary>
/// Gets the number of characters in the current <see cref="T:System.String"/> object.
/// </summary>
///
/// <returns>
/// The number of characters in the current string.
/// </returns>
/// <filterpriority>1</filterpriority>
[__DynamicallyInvokable]
public int Length { [SecuritySafeCritical, __DynamicallyInvokable, MethodImpl(MethodImplOptions.InternalCall)] get; }
また、MSDNで;
Lengthプロパティは、Unicode文字の数ではなく、このインスタンスのCharオブジェクトの数を返します。その理由は、Unicode文字が複数の文字で表される可能性があるためです。
現在の文字列内の文字オブジェクトの数を返します。と呼ばれるタイプがすでに存在するのに、なぜString.Length
戻るのですか?とのポイントは何ですか?Int32
UInt32
signed-unsigned byte
String.Length