SORU
30 EKİM 2008, PERŞEMBE


Yöntemleri C aşırı ya da isteğe bağlı parametreleri kullanarak# 4.0 ilan etmeli mi?

Anders' talk about C# 4.0 and sneak preview of C# 5.0, izliyordum ve isteğe bağlı parametreler C mevcut olduğunda düşünmemi sağladı# tüm parametreleri belirtilen gerekmez yöntemleri bildirmek için önerilen yöntem ne olacak?

Örneğin bir şey gibi FileStream Sınıf vardır yaklaşık on beş farklı markalar olabilir hangi gruba mantıksal 'aile' örneğin aşağıda olanlar, bir dize, olanlardan IntPtr olanlardan SafeFileHandle.

FileStream(string,FileMode);
FileStream(string,FileMode,FileAccess);
FileStream(string,FileMode,FileAccess,FileShare);
FileStream(string,FileMode,FileAccess,FileShare,int);
FileStream(string,FileMode,FileAccess,FileShare,int,bool);

Bana öyle geliyor ki, bu tür bir desen olabilir basitleştirilmiş tarafından sahip üç kurucular yerine ve kullanma isteğe bağlı parametreler için olanlar olabilir temerrüde, yapan farklı ailelerin kurucular daha farklı [not: biliyorum bu değişiklik olmayacak yapılan KORUYUCU, varsayımsal olarak konuşuyorum, bu tip durum].

Ne düşünüyorsun? C# 4.0-ecek yapmak daha mantıklı olun, yakın akraba grupları kurucular ve yöntemleri tek bir yöntem ile isteğe bağlı parametreler, yoksa bir iyi bir neden için sopa ile geleneksel çok-aşırı yük mekanizması?

CEVAP
30 EKİM 2008, PERŞEMBE


Aşağıdaki düşünün istiyorum:

  • Kodunuz, isteğe bağlı parametreler destek yok olan dillerin kullanılması gerekiyor mu? Eğer öyleyse, aşırı yükleme gibi düşünün.
  • İsteğe bağlı parametreler şiddetle karşı çıkan ekibinizin herhangi bir üye var mı? (Bazen bu davayı tartışmak için daha sevmediğin bir karar ile yaşamak daha kolay.)
  • Eğer varsayılan kodunu yapılar arasında, ya da eğer olabilir eğer bir değişiklik olmaz, kendine güvenen arayanlar için dert değil misin?

Varsayılanları işe nasıl kontrol etmedim ama varsayılan değerler arama kodu, eskisi kadar içine pişmiş olacak const alanlar için referans olarak kabul ediyorum. Bu genellikle Tamam. - varsayılan değer değişiklikler çok önemli zaten - ama o bu şeyleri dikkate almak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • tatermoog

    tatermoog

    2 AĞUSTOS 2006
  • Techmoan

    Techmoan

    31 Mayıs 2009
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012