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

Convert.ToBoolean Method ใน C#: แปลงเป็น Boolean

เมธอด Convert.ToBoolean() แปลงค่าที่ระบุเป็น bool (Boolean) ตามกฎการแปลงที่กำหนด

กฎการแปลง (Conversion Rules)

Input TypeTrue เมื่อFalse เมื่อ
BooleanTrueFalse
String"True" (Case-insensitive)"False", Null, Empty, อื่นๆ
Numeric (int, double, etc.)Non-zeroZero
DateTimeไม่ได้ (โยน Exception)ไม่ได้ (โยน Exception)
Object (IConvertible)td>ขึ้นกับ Implementationขึ้นกับ Implementation

ตัวอย่าง: Double to Boolean

using System;

public class Demo
{
    public static void Main()
    {
        double doubleNum = 3.4;
        bool boolNum = Convert.ToBoolean(doubleNum);
        
        Console.WriteLine($"{doubleNum} as a Boolean = {boolNum}.");
    }
}

ผลลัพธ์

3.4 as a Boolean = True.

ตัวอย่างเพิ่มเติม

// String
Convert.ToBoolean("True");   // true
Convert.ToBoolean("False");  // false
Convert.ToBoolean("true");   // true (Case-insensitive)
Convert.ToBoolean("Yes");    // FormatException!
Convert.ToBoolean("");       // false
Convert.ToBoolean(null);     // false

// Numeric
Convert.ToBoolean(1);        // true
Convert.ToBoolean(0);        // false
Convert.ToBoolean(-5);       // true
Convert.ToBoolean(3.14);     // true

// Object
Convert.ToBoolean(new object()); // InvalidCastException

ข้อยกเว้น

  • FormatException - String ไม่ใช่ "True"/"False" (Case-insensitive)
  • InvalidCastException - Type ไม่รองรับการแปลง (เช่น DateTime, Complex Object)

การแปลงปลอดภัย

// สำหรับ String - ใช้ Boolean.TryParse
if (bool.TryParse("True", out bool result))
    Console.WriteLine(result);

// สำหรับ Numeric - ใช้ Logic เอง
bool FromInt(int i) => i != 0;
bool FromDouble(double d) => d != 0.0;

แนะนำ: หลีกเลี่ยง Convert.ToBoolean สำหรับ String/Object ใช้ TryParse หรือ Logic ตรงๆ ดีกว่า