เมธอด Boolean.ToString(IFormatProvider) ใน C# ใช้สำหรับแปลงค่า Boolean (true/false) ให้เป็นสตริง โดยใช้วัฒนธรรม (culture) ที่ระบุ — แม้ว่า Boolean จะไม่ได้รับผลกระทบจากวัฒนธรรมโดยตรง แต่เมธอดนี้มีอยู่เพื่อความเข้ากันได้กับอินเทอร์เฟซ IFormattable
ไวยากรณ์ (Syntax)
public string ToString (IFormatProvider provider);
provider— ออบเจ็กต์ที่ implementIFormatProvider(เช่นCultureInfo) — สำหรับ Boolean ไม่มีผลต่อผลลัพธ์
ตัวอย่างที่ 1: ใช้ CultureInfo en-US
using System;
using System.Globalization;
public class Demo
{
public static void Main(String[] args)
{
bool val1 = true;
bool val2 = false;
Console.WriteLine("Value1 (Hashcode) = " + val1.GetHashCode());
Console.WriteLine("Value1 (TypeCode) = " + val1.GetTypeCode());
Console.WriteLine("Value2 (Hashcode) = " + val2.GetHashCode());
Console.WriteLine("Value2 (TypeCode) = " + val2.GetTypeCode());
CultureInfo provider = new CultureInfo("en-US");
Console.WriteLine("Value1 = " + val1.ToString(provider));
Console.WriteLine("Value2 = " + val2.ToString(provider));
}
}
ผลลัพธ์
Value1 (Hashcode) = 1 Value1 (TypeCode) = Boolean Value2 (Hashcode) = 0 Value2 (TypeCode) = Boolean Value1 = True Value2 = False
ตัวอย่างที่ 2: ใช้ CultureInfo fr-FR (ฝรั่งเศส)
using System;
using System.Globalization;
public class Demo
{
public static void Main(String[] args)
{
bool val1 = true;
bool val2 = false;
Console.WriteLine("Value1 (Hashcode) = " + val1.GetHashCode());
Console.WriteLine("Value1 (TypeCode) = " + val1.GetTypeCode());
Console.WriteLine("Value2 (Hashcode) = " + val2.GetHashCode());
Console.WriteLine("Value2 (TypeCode) = " + val2.GetTypeCode());
// เปลี่ยนวัฒนธรรมเป็นฝรั่งเศส
CultureInfo provider = new CultureInfo("fr-FR");
Console.WriteLine("Value1 = " + val1.ToString(provider));
Console.WriteLine("Value2 = " + val2.ToString(provider));
}
}
ผลลัพธ์
Value1 (Hashcode) = 1 Value1 (TypeCode) = Boolean Value2 (Hashcode) = 0 Value2 (TypeCode) = Boolean Value1 = True Value2 = False
ข้อสังเกตสำคัญ
- Boolean.ToString() ไม่ได้รับผลกระทบจากวัฒนธรรม — เสมอคืน "True" หรือ "False" (ตัวพิมพ์ใหญ่ตัวแรก)
- เมธอด overload นี้มีอยู่เพื่อ implement
IFormattableinterface - HashCode ของ true คือ 1, false คือ 0 (รายละเอียดการ implement อาจเปลี่ยนแปลงได้ในเวอร์ชันอนาคต)
- TypeCode ของ Boolean คือ
TypeCode.Boolean - หากต้องการสตริงแบบอื่น (เช่น "Yes/No", "On/Off") ให้ใช้ ternary operator หรือ Dictionary mapping เอง