|
|
Publicerad den 2021-1-11 11:43:49
|
|
|
|

.NET är ett separat språk. Detta innebär att du som utvecklare kan utveckla i något av de många språken för .NET (t.ex. C#, C++/CLI, Eiffel, F#, IronPython, IronRuby, PowerBuilder, Visual Basic, Visual COBOL och Windows PowerShell). Få tillgång till typerna och medlemmarna i bibliotek utvecklade för .NET utan att behöva veta vilket språk de ursprungligen skrevs på eller följa några konventioner i originalspråket. Om du är komponentutvecklare kan dina komponenter nås av vilken .NET-app som helst, oavsett språk.
Om din komponent följer common language-specifikationen är det garanterat att den är CLS-kompatibel och tillgänglig via kod i en assembler skriven i vilket programmeringsspråk som helst som stödjer CLS. Du kan avgöra om dina komponenter uppfyller common language-specifikationen vid kompileringstillfället genom att applicera CLSCompliantAttribut-funktionen på källkoden.
Common Language Specification diskuterar varje regel för CLS-efterlevnad eftersom den gäller konsumenter (utvecklare som programmatiskt använder CLS-kompatibla komponenter), ramverk (utvecklare som använder språkkompilatorer för att skapa CLS-kompatibla bibliotek) och extensors (utvecklare som skapar verktyg som språkkompilatorer eller kodanalysatorer som skapar CLS-kompatibla komponenter). Programmet kontrollerar inte om koden uppfyller CLS-kraven som standard vid kompilering, men om ditt program kan vara publikt (codeshare, Nuget-release, etc.) rekommenderas att använda [assembly: CLSCompliant(true)]Ange att ditt bibliotek är CLS-kompatibelt。
Resurser:
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
På ett enkelt sätt:
Du kan äta pilaf med händerna, du kan äta med sked, det är inget problem, men att äta med händerna uppfyller inte hygienstandarder eller normer. CLS är en protokollspecifikation, även om assemblern inte rapporterar fel och inte påverkar normal användning, men vissa typer och parametrar av koden du utvecklar uppfyller inte standarderna.
Använd CLS
I AssemblyInfo.cs-filen lägger du till följande kod:
Den kommer att tillämpas på hela församlingen.
Om du inte sätter denna funktion kan du få följande felmeddelande när du lägger till denna funktion i ett objekt:
Eftersom assemblies inte har CLSCompliant-funktioner kräver "A.Test" inte CLSCompliant-funktioner Testkoden är följande, kompilera sedan om:
Typen av "A.Test" uppfyller inte CLS
Du kan se två varningar, klicka på varningspunkten för att hoppa till det specifika radnumret, vilket indikerar att vår kodrad inte följer CLS-specifikationen, och sedan kan du rätta det själv.
Om linjen inte följer CLS-specifikationen, men modifieringen påverkar programmets korrekta funktion, men du inte vill att VS ska varna dig, kan du lägga till följande egenskaper i fältet eller klassen:
På så sätt kommer denna varning inte att utfärdas.
(Slut)
|
Föregående:Entity Framework Frågeoptimering WITH(NOLOCK)Nästa:.NET/C# för att få det aktuella applikationstillståndet (CPU, tråd, GC)
|