Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Boolean.ToString(IFormatProvider) ใน C# พร้อมตัวอย่าง


เมธอด Boolean.ToString(IFormatProvider) ใน C# ใช้สำหรับแปลงค่า Boolean (true/false) ให้เป็นสตริง โดยใช้วัฒนธรรม (culture) ที่ระบุ — แม้ว่า Boolean จะไม่ได้รับผลกระทบจากวัฒนธรรมโดยตรง แต่เมธอดนี้มีอยู่เพื่อความเข้ากันได้กับอินเทอร์เฟซ IFormattable

ไวยากรณ์ (Syntax)

public string ToString (IFormatProvider provider);
  • provider — ออบเจ็กต์ที่ implement IFormatProvider (เช่น 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 IFormattable interface
  • HashCode ของ true คือ 1, false คือ 0 (รายละเอียดการ implement อาจเปลี่ยนแปลงได้ในเวอร์ชันอนาคต)
  • TypeCode ของ Boolean คือ TypeCode.Boolean
  • หากต้องการสตริงแบบอื่น (เช่น "Yes/No", "On/Off") ให้ใช้ ternary operator หรือ Dictionary mapping เอง