ภาพรวม
Char.IsSurrogate(string, int index) ตรวจสอบว่าตัวอักษรที่ตำแหน่ง index ในสตริงเป็น surrogate code unit (high/low surrogate สำหรับ UTF-16) หรือไม่
ตัวอย่างที่ 1: มี surrogate (\uD800)
using System;
public class Demo
{
public static void Main()
{
string str = new String(new char[] { 'k', 'm', 'g', 't', '\uD800' });
bool res = Char.IsSurrogate(str, 4);
if (res)
Console.WriteLine("Contains Surrogate value!");
else
Console.WriteLine("Does not contain Surrogate value!");
}
}
ผลลัพธ์
Contains Surrogate value!
ตัวอย่างที่ 2: ไม่มี surrogate
using System;
public class Demo
{
public static void Main()
{
string str = new String(new char[] { 'k', 'm', 'g', 't', 'w' });
bool res = Char.IsSurrogate(str, 4);
if (res)
Console.WriteLine("Contains Surrogate value!");
else
Console.WriteLine("Does not contain Surrogate value!");
}
}
ผลลัพธ์
Does not contain Surrogate value!
สรุป
- Surrogate ใช้ใน UTF-16 แทนตัวอักษรนอก Basic Multilingual Plane (BMP)
Char.IsSurrogateตรวจสอบได้ทั้ง high surrogate (U+D800..U+DBFF) และ low surrogate (U+DC00..U+DFFF)- ใช้
Char.IsHighSurrogate/Char.IsLowSurrogateแยกประเภทได้