Поделиться через


Option Compare Statement

Declares the default comparison method to use when comparing string data.

Option Compare { Binary | Text }

Parts

Term

Definition

Binary

Optional. Results in string comparisons based on a sort order derived from the internal binary representations of the characters.

This type of comparison is useful especially if the strings can contain characters that are not to be interpreted as text. In this case, you do not want to bias comparisons with alphabetical equivalences, such as case insensitivity.

Text

Optional. Results in string comparisons based on a case-insensitive text sort order determined by your system's locale.

This type of comparison is useful if your strings contain all text characters, and you want to compare them taking into account alphabetic equivalences such as case insensitivity and closely related letters. For example, you might want to consider A and a to be equal, and Ä and ä to come before B and b.

Remarks

If used, the Option Compare statement must appear in a file before any other source code statements.

The Option Compare statement specifies the string comparison method (Binary or Text). The default text comparison method is Binary.

A Binary comparison compares the numeric Unicode value of each character in each string. A Text comparison compares each Unicode character based on its lexical meaning in the current culture.

In Microsoft Windows, sort order is determined by the code page. For more information, see Code Pages.

In the following example, characters in the English/European code page (ANSI 1252) are sorted by using Option Compare Binary, which produces a typical binary sort order.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

When the same characters in the same code page are sorted by using Option Compare Text, the following text sort order is produced.

(A=a) < (À = à) < (B=b) < (E=e) < (Ê = ê) < (Z=z) < (Ø = ø)

When an Option Compare Statement Is Not Present

If the source code does not contain an Option Compare statement, the Option Compare setting on the Compile Page, Project Designer (Visual Basic) is used. If you use the command-line compiler, the setting specified by the /optioncompare compiler option is used.

Note

Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see Visual Studio Settings.

To set Option Compare in the IDE

  1. In Solution Explorer, select a project. On the Project menu, click Properties. For more information, see Introduction to the Project Designer.

  2. Click the Compile tab.

  3. Set the value in the Option Compare box.

When you create a project, the Option Compare setting on the Compile tab is set to the Option Compare setting in the Options dialog box. To change this setting, on the Tools menu, click Options. In the Options dialog box, expand Projects and Solutions, and then click VB Defaults. The initial default setting in VB Defaults is Binary.

To set Option Compare on the command line

Example

The following example uses the Option Compare statement to set the binary comparison as the default string comparison method. To use this code, uncomment the Option Compare Binary statement, and put it at the top of the source file.

' Option Compare Binary

Console.WriteLine("A" < "a")
' Output: True

The following example uses the Option Compare statement to set the case-insensitive text sort order as the default string comparison method. To use this code, uncomment the Option Compare Text statement, and put it at the top of the source file.

' Option Compare Text

Console.WriteLine("A" = "a")
' Output: True

See Also

Reference

/optioncompare

Comparison Operators (Visual Basic)

Like Operator (Visual Basic)

String Functions (Visual Basic)

Option Explicit Statement (Visual Basic)

Option Strict Statement

InStr

InStrRev

Replace

Split

StrComp

Concepts

Comparison Operators in Visual Basic