2011-02-15 11 views
8

Kod Sözleşmelerini kullanmaya başladım ve bir yöntemin 'cesaretlerini' hemen belirlemenin zor olduğunu fark ettim.Kodumun karmaşık görünmesini sağlayarak .NET 4.0'daki kod sözleşmelerini nasıl kullanırım?

bu (çok basit) örnek verebiliriz: Şimdi onlar gizli olabilir, böylece bir bölgede sözleşmeleri koymak için çeliyor

public static void UserAddNew(string domain, string username, string displayName) 
{ 
    Contract.Assert(!string.IsNullOrWhiteSpace(domain)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(username)); 
    Contract.Assert(!string.IsNullOrWhiteSpace(displayName)); 

    LinqDal.User.UserAddNew(domain, username, displayName); 
} 

ama sonra ben endişeleniyorum Yönteme göz atmanın ve ne beklediğini görmenin güzel bir avantajını kaybetmek.

Sözleşmelerinizi düzenli tutmak için ne yaparsınız? Yoksa sadece çok seçici miyim?

+0

olası yinelenen "Kodumu dağınık görünmeden uygulamaya nasıl yeni özellikler ekleyebilirim?" –

+3

AFAICT, bu yeni ya da Kod Sözleşmeleri'ne özgü değil - yöntem, CC'den önce bile parametreleri kontrol ediyordu, değil mi? Buna birazcık boşluktan başka bir çözümüm yok… – Mormegil

+0

Mormegil'e katılıyorum. CC'den önce "eğer (koşul) yeni argumentexception atıyor" yazmanız gerekiyordu. – koenmetsu

cevap

6

ContractClass ve ContractClassFor özelliklerine bir göz atın. Bu, kod sözleşmeleriyle sınıfları ayrı derlemeler halinde yazmanıza olanak tanır. Bu kodunuzu kalabalık etmez, sen dev iş için kullanılabilir sözleşmeleri olmasını sağlar ve aynı zamanda canlı kodu ile sözleşme dağıtmak olmadığı anlamına gelir:

Contract Class Attribute

Contract Class For Attribute

+1

Doğru, ancak bu örnekte kullandığı statik yöntem üzerinde çalışmaz. – koenmetsu

+1

Ayrıca: sözleşmeleri dağıtmak, Kod Sözleşmeleri Özellik Bölmesinde hangi ayarları kullandığınıza bağlıdır. Sözleşmeleri doğru ayarları olmadan dağıtmamanız sadece size sorun verecektir. – koenmetsu

+0

Geliştiricinin özelliği nasıl kullanacağıyla ilgili belgeleri okuyacağını varsayalım. :) –

İlgili konular