SORU
7 EKİM 2008, Salı


Neden &; boş" C mevcut " # ve java?

Bizim yazılım hataları çok sayıda C geliştiğini fark ettik# (veya java) bir NullReferenceException neden.

Vardır bir sebebi" bile bu dil? dahil edilmiştir "null

Eğer "boş", hata olurdu, değil mi? Hayır olsaydı yok sonuçta

Diğer bir deyişle, ne özelliği dilinde boş olmadan çalışamaz mıyım?

CEVAP
7 EKİM 2008, Salı


Anders Hejlsberg, "C# baba", sadece hakkında konuştu his Computerworld interview nokta:

Yazın sisteminde örneğin, değer ve başvuru türleri arasındaki ayrımı ve türleri null yok. Bu biraz teknik biraz zayıf gelebilir ama C# referans tipleri null olabilir, dizeleri gibi, ama değer türü null olamaz. Kesinlikle iyi oldu non-null başvuru türleri, diye beyan ‘bu dize ... asla boş ve seni istiyorum derleyici için kontrol edebilirim vurmak hiç bir null işaretçi işte.

İnsanlar bugün, bizim platformu ile C# kodlama çalıştırın ve aynı bu konuda Java için de geçerlidir hataların P'si, muhtemelen null başvuru özel durumlar vardır. Eğer biz vardı daha güçlü bir tür sistem izin verirsen sana söyleyeceğim Bu parametre olabilir olmayacak boş ve derleyici kontrol edin her çağrı yaparak statik analiz kodu’. Sonra böcek sınıfları dışarı damgalı olabilir.

Cyrus Najmabadi, eski bir yazılım tasarım Mühendisi C# takım (şimdi çalışan Google) üzerinde duruyoruz. bu konuda onun blog: (1st, 2nd, 3rd, 4th). Null olmayan türleri kabulü için en büyük engel gösterim programcılar’ alışkanlıkları ve kod tabanı. rahatsız olacak gibi görünüyor C başvurular p gibi bir şey# programları-sonu olmayan-null olanlar muhtemeldir.

Eğer gerçekten C non-null başvuru türü olmasını istiyorsanız# Spec#kullanmayı denemelisin bir C# kullanımına izin verdiğini uzantısı "!" null olmayan bir işareti olarak.

static string AcceptNotNullObject(object! s)
{
    return s.ToString();
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007