เมธอด Convert.ToBoolean() แปลงค่าที่ระบุเป็น bool (Boolean) ตามกฎการแปลงที่กำหนด
กฎการแปลง (Conversion Rules)
| Input Type | True เมื่อ | False เมื่อ |
|---|---|---|
| Boolean | True | False |
| String | "True" (Case-insensitive) | "False", Null, Empty, อื่นๆ |
| Numeric (int, double, etc.) | Non-zero | Zero |
| 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 ตรงๆ ดีกว่า