|
|
Opublikowano 11.01.2021 o 11:43:49
|
|
|
|

.NET to osobny język. Oznacza to, że jako programista możesz tworzyć w jednym z wielu języków .NET (np. C#, C++/CLI, Eiffel, F#, IronPython, IronRuby, PowerBuilder, Visual Basic, Visual COBOL oraz Windows PowerShell). Uzyskaj dostęp do typów i członków bibliotek opracowanych dla .NET bez konieczności znajomości języka, w którym zostały pierwotnie napisane, ani przestrzegania jakichkolwiek konwencji oryginalnego języka. Jeśli jesteś programistą komponentów, do swoich komponentów można uzyskać dostęp w dowolnej aplikacji .NET, niezależnie od języka.
Jeśli Twój komponent spełnia specyfikację Common Language, gwarantuje się, że jest zgodny z CLS i dostępny poprzez kod w asemblerze napisanym w dowolnym języku programowania obsługującym CLS. Możesz sprawdzić, czy Twoje komponenty spełniają standardy Common Language podczas kompilacji, stosując funkcję CLSCompliantAttribute do kodu źródłowego.
Specyfikacja Common Language omawia każdą regułę zgodności z CLS, ponieważ odnosi się ona do konsumentów (programistów korzystających z komponentów zgodnych z CLS), frameworków (programistów używających kompilatorów językowych do tworzenia bibliotek zgodnych z CLS) oraz extensorów (programistów tworzących narzędzia takie jak kompilatory języka czy analizatory kodu tworzące komponenty zgodne z CLS). Program nie sprawdza, czy kod domyślnie spełnia wymagania CLS podczas kompilacji, ale jeśli Twój program może być publiczny (codeshare, wydanie Nuget itp.), zaleca się użycie [assembly: CLSCompliant(true)]Wskaż, że Twoja biblioteka jest zgodna z CLS。
Zasoby:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Mówiąc prosto:
Możesz jeść pilaf rękami, możesz jeść łyżką, nie ma problemu, jednak jedzenie rękami nie spełnia standardów higienicznych ani norm. CLS jest specyfikacją protokołu, chociaż asembler nie zgłasza błędów i nie wpływa na normalne użytkowanie, jednak niektóre typy i parametry kodu, który tworzysz, nie spełniają standardów.
Użyj CLS
W pliku AssemblyInfo.cs dodaj następujący kod:
Będzie to stosowane na całym zgromadzeniu.
Jeśli nie ustawisz tej funkcji, możesz otrzymać następujący błąd podczas dodawania tej funkcji do obiektu:
Ponieważ zespoły nie posiadają funkcji CLSCompliant, "A.Test" nie wymaga funkcji CLSCompliant Kod testowy wygląda następująco, a następnie rekompiluj:
Typ "A.Testu" nie spełnia wymagań CLS
Możesz zobaczyć dwa ostrzeżenia, kliknąć na element ostrzeżenia, aby przejść do konkretnego numeru linii, co oznacza, że nasz kod nie spełnia specyfikacji CLS, a następnie możesz to samodzielnie poprawić.
Jeśli linia nie spełnia specyfikacji CLS, ale modyfikacja wpłynie na prawidłowe działanie programu, a nie chcesz, aby VS cię ostrzegał, możesz dodać następujące cechy do pola lub klasy:
Dzięki temu ostrzeżenie nie zostanie wydane.
(Koniec)
|
Poprzedni:Optymalizacja zapytań w ramach Entity Framework WITH(NOLOCK)Następny:.NET/C#, aby uzyskać aktualny stan aplikacji (CPU, wątek, GC)
|