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

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • bored before i even began

    bored before

    30 Mart 2009
  • Study with Substance P

    Study with S

    31 Mayıs 2008