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

  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008
  • tseyina

    tseyina

    2 AĞUSTOS 2006