Microsoft'un Code Contracts uzantısını C# ile kullanıyorum. Ben null döndürür geçersiz kılınmış bir ToString uygulaması ile bir sınıf yazarken, doğru konuyu tanımlar:Kod Sözleşmeleri, ToString geçersiz kılmaları geçersiz kılmaması gerektiğini nasıl biliyor?
Microsoft dahili Kod Sözleşmeler kullandığı için bu olduğunu düşünmüştüm ve onlar Object.ToString
bir Contract.Ensures
çağrısı ekledi. Ancak, Object.ToString
source code'a baktığımda herhangi bir sözleşme görmüyorum (diğer sözleşmeleri görüyorum, ama aradığım şey değil). Kod Sözleşmeleri, ToString'in null değerini döndürmemesi gerektiğini nasıl belirler?
Biraz daha fazla bilgi sağlamak için: Kod Sözleşmeleri resmi meclislerde bulunmaz, bu nedenle bunları sourcesource.microsoft.com adresinde göremezsiniz. Kural Sözleşmeleri ekibi tüm Kod Sözleşmelerini kendileri tanımlamış ve yalnızca sözleşmeleri içeren ve gerçek kaynağı olmayan, ayrı sözleşme referans meclislerinde sağlanmıştır. – cremor
@cremor Teşekkürler! Sadece FYI, ReferenceSource üzerinde çok sayıda sözleşme görüyorum (örneğin [Object.cs] (http://referencesource.microsoft.com/#mscorlib/system/object.cs,180)) ancak sözleşmelerin bunları kimin yazdığına bağlı olarak .NET çekirdeğinde veya Kod Sözleşmelerinde belirtilmelidir. – Will