Char.IsSurrogate Method (Char)

Indicates whether the specified character has a surrogate code point.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)


Public Shared Function IsSurrogate ( _
    c As Char _
) As Boolean
public static bool IsSurrogate(
    char c


Return Value

Type: System.Boolean
true if c is either a high surrogate or a low surrogate; otherwise, false.


A surrogate is a Char object with a Unicode code point in the range from U+D800 to U+DFFF. Each character with a code point in this range belongs to the UnicodeCategory.Surrogate category. The individual surrogate code point has no interpretation of its own, but has meaning only when used as part of a surrogate pair. For more information about surrogate pairs, see the Unicode Standard at the Unicode home page.


The following example demonstrates IsSurrogate.

Module Example

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' NOTE: Visual Basic doesn't give us a way to create a 32-bit Unicode 
      ' character composed of two 16-bit surrogate values, so a case where 
      ' IsSurrogate returns True cannot be included in this sample. 

      outputBlock.Text &= Char.IsSurrogate("a"c) & vbCrLf       ' Output: "False"

   End Sub

End Module
using System;

public class Example
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
      string str = "\U00010F00"; // Unicode values between 0x10000 and 0x10FFF are represented by two 16-bit "surrogate" characters

      outputBlock.Text += Char.IsSurrogate('a') + "\n";     // Output: "False"
      outputBlock.Text += Char.IsSurrogate(str, 0) + "\n";  // Output: "True"

Version Information


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0


For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.