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

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011