İçerik Tablosu
bool.TryParse()
ile Güvenilir Boole Dönüşümü- Doğrudan Dönüşüm Yöntemleri:
bool.Parse()
veConvert.ToBoolean()
- Çeşitli String Gösterimlerinin İşlenmesi
bool.TryParse()
ile Güvenilir Boole Dönüşümü
C#’ta, özellikle kullanıcı girdisi veya harici veri kaynaklarını işlerken, stringleri boolean değerlere dönüştürmek sık karşılaşılan bir işlemdir. Stringler genellikle örtük olarak boolean durumları (“true”, “false”, “1”, “0”) temsil eder. En güvenilir yaklaşım bool.TryParse()
metodunu kullanmaktır.
bool.TryParse()
dönüşümü istisna fırlatmadan dener. Başarılı olursa true
döndürür ve sonuç boolean değerini bir out
parametresine yerleştirir; aksi takdirde false
döndürür. Bu, zarif hata yönetimine olanak tanır.
string strTrue = "True";
string strFalse = "false";
string invalidString = "hello";
bool result;
if (bool.TryParse(strTrue, out result))
{
Console.WriteLine($"Dönüşüm başarılı: {result}"); // Çıktı: Dönüşüm başarılı: True
}
else
{
Console.WriteLine("Dönüşüm başarısız");
}
if (bool.TryParse(strFalse, out result))
{
Console.WriteLine($"Dönüşüm başarılı: {result}"); // Çıktı: Dönüşüm başarılı: False
}
else
{
Console.WriteLine("Dönüşüm başarısız");
}
if (bool.TryParse(invalidString, out result))
{
Console.WriteLine($"Dönüşüm başarılı: {result}");
}
else
{
Console.WriteLine("Dönüşüm başarısız"); // Çıktı: Dönüşüm başarısız
}
Bu metod, beklenmedik girdilerden kaynaklanan çökmeleri önleyerek hata direnci nedeniyle önerilir. Dönüşüm hatalarını uygun şekilde, belki bilgilendirici hata mesajları göstererek veya varsayılan boolean değerler kullanarak işleyebilirsiniz.
Doğrudan Dönüşüm Yöntemleri: bool.Parse()
ve Convert.ToBoolean()
bool.TryParse()
sağlamlık açısından tercih edilirken, bool.Parse()
ve Convert.ToBoolean()
daha özlü, ancak daha az affedici alternatifler sunar.
bool.Parse()
bir stringi doğrudan dönüştürür. “True”, “False”, “true”, “false”, “1” ve “0” değerlerini kabul eder (“True” ve “False” için büyük/küçük harfe duyarsızdır) ve geçersiz girdi için FormatException
fırlatır.
string strTrue = "True";
bool boolTrue = bool.Parse(strTrue); // true
Convert.ToBoolean()
benzer şekilde davranır ancak null
girdisini false
döndürerek işler ve ArgumentNullException
‘dan kaçınır.
string strNull = null;
bool boolNull = Convert.ToBoolean(strNull); // false
Ancak, her iki metod da beklenmedik girdi stringlerini işlemek için bool.TryParse()
‘dan daha az esnek ve hataya açıktır.
Çeşitli String Gösterimlerinin İşlenmesi
Uygulamanızın boolean değerlerinin farklı string gösterimlerini nasıl işlediğini dikkate almak çok önemlidir. Tartışılan yöntemler “true”, “false”, “1” ve “0” değerlerini kabul ederken, “yes”, “no”, “Y”, “N” veya hatta özel gösterimler gibi varyasyonlarla karşılaşabilirsiniz. Bu gibi durumlarda, dönüştürmeden önce girdi stringini normalleştirmek için, belki bir switch
deyimi veya bir sözlük araması kullanarak özel ön işleme eklemeyi düşünün.
Örneğin, “yes” ve “no” değerlerini eklemek için:
string input = "yes";
string normalizedInput = input.ToLower();
bool result;
if (normalizedInput == "yes" || normalizedInput == "true" || normalizedInput == "1")
{
result = true;
}
else if (normalizedInput == "no" || normalizedInput == "false" || normalizedInput == "0")
{
result = false;
}
else
{
// Geçersiz girdiyi işleyin
result = false; // Veya bir istisna fırlatın
}