2016-06-13 26 views
5

C# geliştirici olarak Microsoft'un Kod Analizi'nden yararlandım. Ancak F # kodunda Kod Analizi, geliştirme döngüsünün entegre bir parçası gibi görünmemektedir. Bir F # projesinde CA'yı etkinleştirmek biraz zamanımı aldı, ancak bu blog helped. Artık CA'yı etkinleştirdim, "yanlış" uyarıları üretiyor gibi görünüyor.Kod analizi F #

type Account = {Number : string} 

kendisi için ben varsayılan olarak yapısal eşitlik beklediğiniz gibi Mesela ben bir rekor türü ilan etmişlerdir. This blog, sayının eşit olduğu iki tür Harekat örneğinin eşit olması gerektiğini gösterir. Kod analizi neden bana şunu söyler: 'Hesap', IComparable'ı uyguladığı için '! =' Operatörünü tanımlamalıdır? Elbette, bu bir C# sınıfı olmuştu, o zaman tüm bu çemberler arasından atlamak zorundaydım, fakat F # 'da bu, otomatik olarak gerçekleşmeli.

"Microsoft Tüm Kurallar" kural kümesini uygulıyorum. Bunlar F # için geçerli değil mi ve eğer öyleyse, kullanmam gereken herhangi bir kural var mı?

+1

Bu kurallar C# yöneliktir. Sadece C# kullandığınızı ve buna uygun uyarıları verdiklerini varsayıyorlar. Bu kurallara gerçekten ihtiyacın olduğuna emin misin? F # ile yaşadığım deneyimde, dilin bana doğru yönde kılavuzluk ettiğini buldum, bunun için harici araçlara ihtiyacım yok. –

+0

Başvuruda bulunduğunuz ilk blog yayınına bakarsanız, kod hedeflerini çalıştırmadan önce 'Targets' dosyasının dili açıkça kontrol ettiğini görürsünüz. Bunun bir sebebi olduğunu düşünmüyor musun? –

+1

@FyodorSoikin Tabii ki, CA almak için 'sistem çapında' bir dosya üzerinde değişiklik yapmak zorunda kalmamı garip buldum, ancak bazı kurallar yine de bir F # projesiyle alakalı olacak. Ayrıca bu soruyu okuyan birinin beni indirebileceğim bir F # kural kümesine yönlendireceğini umuyoruz (eğer böyle bir şey varsa). – SimonAx

cevap