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
In Solution Explorer, select a project. On the Project menu, click Properties. For more information, see Introduction to the Project Designer.
Click the Compile tab.
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
- Include the /optioncompare compiler option in the vbc command.
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
Comparison Operators (Visual Basic)
String Functions (Visual Basic)
Option Explicit Statement (Visual Basic)