Zoeken…


Syntaxis

  1. [Montage: CLSCompliant (true)]
  2. [CLSCompliant (true)]

parameters

bouwer Parameter
CLSCompliantAttribute (Boolean) Initialiseert een instantie van de klasse CLSCompliantAttribute met een Booleaanse waarde die aangeeft of het aangegeven programma-element CLS-compatibel is.

Opmerkingen

De Common Language Specification (CLS) is een set basisregels waaraan elke taal die op de CLI is gericht (taal die de specificaties van de Common Language Infrastructure bevestigt) moet worden bevestigd om te kunnen samenwerken met andere CLS-compatibele talen.

Lijst met CLI-talen

In de meeste gevallen moet u uw assembly markeren als CLSCompliant wanneer u bibliotheken distribueert. Dit kenmerk garandeert u dat uw code bruikbaar is voor alle CLS-compatibele talen. Dit betekent dat uw code kan worden gebruikt door elke taal die kan worden gecompileerd en uitgevoerd op CLR ( Common Language Runtime )

Wanneer uw CLSCompliantAttribute is gemarkeerd met CLSCompliantAttribute , zal de compiler controleren of uw code een van de CLS-regels schendt en een waarschuwing retourneren als dit nodig is.

Toegang Modifier waarop CLS-regels van toepassing zijn

using System;

[assembly:CLSCompliant(true)]
namespace CLSDoc
{
   
    public class Cat
    {
        internal UInt16 _age = 0;
        private UInt16 _daysTillVacination = 0;

        //Warning CS3003  Type of 'Cat.DaysTillVacination' is not CLS-compliant
        protected UInt16 DaysTillVacination
        {
            get { return _daysTillVacination; }
        }

        //Warning    CS3003    Type of 'Cat.Age' is not CLS-compliant
        public UInt16 Age
        { get { return _age; } }

        //valid behaviour by CLS-compliant rules
        public int IncreaseAge()
        {
            int increasedAge = (int)_age + 1;
           
            return increasedAge;
        }

    }
}

De regels voor CLS-naleving zijn alleen van toepassing op openbare / beschermde componenten.

Overtreding van CLS-regel: niet-ondertekende typen / sbyte

using System;

[assembly:CLSCompliant(true)]
namespace CLSDoc
{
   
    public class Car
    {
        internal UInt16 _yearOfCreation = 0;

        //Warning CS3008  Identifier '_numberOfDoors' is not CLS-compliant 
        //Warning CS3003  Type of 'Car._numberOfDoors' is not CLS-compliant 
        public UInt32 _numberOfDoors = 0;

        //Warning    CS3003    Type of 'Car.YearOfCreation' is not CLS-compliant
        public UInt16 YearOfCreation
        {
            get { return _yearOfCreation; }
        }


        //Warning CS3002  Return type of 'Car.CalculateDistance()' is not CLS-compliant
        public UInt64 CalculateDistance()
        {
            return 0;
        }

        
        //Warning CS3002  Return type of 'Car.TestDummyUnsignedPointerMethod()' is not CLS-compliant 
        public UIntPtr TestDummyUnsignedPointerMethod()
        {
            int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            UIntPtr ptr = (UIntPtr)arr[0];

            
            return ptr;
        }

        //Warning CS3003  Type of 'Car.age' is not CLS-compliant 
        public sbyte age = 120;


    }
}

Overtreding van CLS-regel: dezelfde naamgeving

using System;

[assembly:CLSCompliant(true)]
namespace CLSDoc
{
   
    public class Car
    {
        //Warning    CS3005    Identifier 'Car.CALCULATEAge()' differing only in case is not CLS-compliant
        public int CalculateAge()
        {
            return 0;
        }

        public int CALCULATEAge()
        {
            return 0;
        }

    }
}

Visual Basic is niet hoofdlettergevoelig

Schending van CLS-regel: ID _

using System;

[assembly:CLSCompliant(true)]
namespace CLSDoc
{
   
    public class Car
    {
        //Warning CS3008  Identifier '_age' is not CLS-complian    
        public int _age = 0;    
    }

}

U kunt de variabele niet starten met _

Overtreding van CLS-regel: Overnemen van niet-CLSC-klachtklasse

using System;

[assembly:CLSCompliant(true)]
namespace CLSDoc
{

    [CLSCompliant(false)]
    public class Animal
    {
        public int age = 0;
    }
  
    //Warning    CS3009    'Dog': base type 'Animal' is not CLS-compliant
    public class Dog : Animal
    {
    }

}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow