MaxLengthAttribute 是如何测量长度的?
How does MaxLengthAttribute measure length?
MaxLengthAttribute 究竟是如何测量字符串的长度的?它是否基于 UTF-16
中的字节,因为 C# 字符串是 UTF-16
?因此,如果我的 SQL 服务器使用 UTF-8
排序规则,可能会出现 SQL 服务器和 C# 对字符串长度是否为 e.g. 有不同意见的情况。 <= 100
?
该属性不测量字符串的长度,它只是指定字符串长度的限制 属性,即 clearly documented 作为字符数。
Is it based on bytes in UTF-16 as C# strings are UTF-16
不是,是string
对象中的字符数,即string
的Length
属性返回的数字。
例如,值为“abc”的 string
的 Length
为 3,在 UTF-8 中用 3 个字节表示,在 UTF-16 中用 6 个字节表示。
尽管在 UTF-8 和 UTF-16 中都由 6 个字节表示,但值为“åäö”的 string
也有一个 Length
3。
所以它指的是char
个元素的个数,或者string
的长度。
MaxLengthAttribute 究竟是如何测量字符串的长度的?它是否基于 UTF-16
中的字节,因为 C# 字符串是 UTF-16
?因此,如果我的 SQL 服务器使用 UTF-8
排序规则,可能会出现 SQL 服务器和 C# 对字符串长度是否为 e.g. 有不同意见的情况。 <= 100
?
该属性不测量字符串的长度,它只是指定字符串长度的限制 属性,即 clearly documented 作为字符数。
Is it based on bytes in UTF-16 as C# strings are UTF-16
不是,是string
对象中的字符数,即string
的Length
属性返回的数字。
例如,值为“abc”的 string
的 Length
为 3,在 UTF-8 中用 3 个字节表示,在 UTF-16 中用 6 个字节表示。
尽管在 UTF-8 和 UTF-16 中都由 6 个字节表示,但值为“åäö”的 string
也有一个 Length
3。
所以它指的是char
个元素的个数,或者string
的长度。