2016-06-13 19 views
5

Jako programista w C# skorzystałem z analizy kodu Microsoft. Jednak w F # analiza kodu nie wydaje się integralną częścią cyklu programowania. Zajęło mi trochę czasu, aby włączyć CA w projekcie F #, ale to blog helped. Teraz, gdy mam włączony CA, wydaje się, że generuje "nieprawidłowe" ostrzeżenia. Na przykład, mam zadeklarowany typ rekordu jako domyślny domyślnie, dla którego domyślnie oczekuję strukturalnej równości. This blog pokazuje, że dwie instancje typu Acccount, dla których liczba jest taka sama, powinny być równe. Dlaczego analiza kodu mówi mi wtedy, że "Konto" powinno definiować operatora "! =", Ponieważ implementuje on IComparable? Na pewno, gdyby to była klasa C#, to musiałbym przeskoczyć przez te wszystkie obręcze, ale w F # powinno to nastąpić automagicznie.Analiza kodu w języku F #

Używam zestawu reguł "Microsoft All Rules". Czy nie mają one zastosowania do F #, a jeśli tak, czy jest jakiś zestaw reguł, którego powinienem użyć?

+1

Przepisy te mają na celu C#. Zakładają tylko, że używasz C# i podajesz odpowiednie ostrzeżenia. Czy na pewno naprawdę potrzebujesz tych zasad? Z mojego doświadczenia z F # przekonałem się, że sam język prowadzi mnie we właściwym kierunku, nie potrzebuję do tego zewnętrznych narzędzi. –

+0

Jeśli spojrzysz na pierwszy wpis na blogu, do którego się odwołałeś, zobaczysz, że plik 'Targets' dokładnie sprawdza język przed uruchomieniem analizy kodu. Nie sądzisz, że istnieje ku temu powód? –

+1

@FyodorSoikin Pewnie odkryłem, że to dziwne, że musiałem zmodyfikować plik "obejmujący cały system", aby uzyskać certyfikat CA, ale niektóre reguły będą nadal mieć znaczenie dla projektu F #. Mam też nadzieję, że ktoś czytający to pytanie wskaże mi zestaw reguł F #, który mogę pobrać (jeśli coś takiego istnieje). – SimonAx

Odpowiedz