SORU
31 AĞUSTOS 2009, PAZARTESİ


Eğer string boş ise ArgumentNullException takmalı mıyım?

Bir dize parametresi verilen bir şey yapan bir yöntem üzerinde çalışıyorum. Dize parametresi için geçerli bir değer birşey null veya string.Boş. Benim kod bu gibi görünüyor.

private void SomeMethod(string someArgument)
{
    if(string.IsNullOrEmpty(someArgument))
        throw new ArgumentNullException("someArgument");

    // do some work
}

Çok heyecan verici bir şey yok. Benim sorum ise string eşit ise bile, bir ArgumentNullException atmak için iyi oluyor.Boş? Çünkü teknik olarak boş değil. Eğer ArgumentNullException atmak olmamalı düşünüyorsanız özel durum ne olmalıdır?

CEVAP
31 AĞUSTOS 2009, PAZARTESİ


ArgumentException String.Empty dava için atılmış olmalıdır. Bu bir sorun, boş olmaktan başka gösteriyor. Null için NullReferenceException ben önce bir test önlemek için, ve geçen herhangi bir boşluk önlemek için boş dava için trim kontrol edin.

private void SomeMethod(string someArgument)
{
    if(someArgument == null)
        throw new ArgumentNullException("someArgument");

    if (someArgument.Trim() == String.Empty)
        throw new ArgumentException("Input cannot be empty", "someArgument");

    // do some work
}

Gibi .NET 4.0 tek seferde bu denetimleri gerçekleştirmek için String.IsNullOrWhiteSpace yöntemi kullanabilirsiniz. Böyle yaparak size ayrıntılı durum türü belirtmek için yeteneği vazgeçmek, ArgumentException tercih ve mesajı ona göre güncellemek istiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008