説明
We should test to see if the VB compiler complies with the language specification in handling case insensitivity. Below are a few of the language specification's assertions. If there is a mismatch, we will have to decide whether we want to change the compiler or the specification.
Case is unimportant in Visual Basic programs. For simplicity, all terminals will be given in standard casing, but any casing will match them. Terminals that are printable elements of the ASCII character set are represented by their corresponding ASCII characters. Visual Basic is also width insensitive when matching terminals, allowing full-width Unicode characters to match their half-width Unicode equivalents, but only on a whole-token basis. A token will not match if it contains mixed half-width and full-width characters.
See also https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)
Identifiers are case insensitive, so two identifiers are considered to be the same identifier if they differ only in case. Note The Unicode Standard one-to-one case mappings are used when comparing identifiers and any locale-specific case mappings are ignored.
It may be possible in other languages to create a declaration space that contains different kinds of entities with the same name (for example, if the language is case sensitive and allows different declarations based on casing). In that situation, the most accessible entity is considered bound to that name; if more than one type of entity is most accessible then the name is ambiguous. Public is more accessible than Protected Friend, Protected Friend is more accessible than Protected or Friend, and Protected or Friend is more accessible than Private.