在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 属性返回此实例中 Char 对象的数量,而不是 Unicode 字符的数量。原因是一个 Unicode 字符可能由多个 Char 表示。
它返回当前字符串中字符对象的数量。为什么当已经有一个类型时String.Length
返回?和的意义何在?Int32
UInt32
signed-unsigned byte
String.Length