C# Language
CLSCompliantAttribute
खोज…
वाक्य - विन्यास
- [विधानसभा: CLSCompliant (सही)]
- [CLSCompliant (सही)]
पैरामीटर
निर्माता | पैरामीटर |
---|---|
CLSCompliantAttribute (बूलियन) | एक बुलियन मूल्य के साथ CLSCompliantAttribute वर्ग के एक उदाहरण को इंगित करता है कि संकेत दिया कार्यक्रम तत्व सीएलएस-अनुरूप है या नहीं। |
टिप्पणियों
कॉमन लैंग्वेज स्पेसिफिकेशन (सीएलएस) आधार नियमों का एक सेट है, जिसमें सीएलआई को लक्षित करने वाली कोई भी भाषा (वह भाषा जो कॉमन लैंग्वेज इंफ्रास्ट्रक्चर स्पेसिफिकेशंस की पुष्टि करती है) को अन्य सीएलएस-अनुरूप भाषाओं के साथ संबंध बनाने के लिए पुष्टि करनी चाहिए।
जब आप पुस्तकालयों का वितरण कर रहे हों तो आपको ज्यादातर मामलों में अपनी विधानसभा को CLSCompliant के रूप में चिह्नित करना चाहिए। यह विशेषता आपको गारंटी देगी कि आपका कोड सभी सीएलएस-अनुपालन भाषाओं द्वारा उपयोग करने योग्य होगा। इसका मतलब यह है कि आपके कोड को किसी भी भाषा द्वारा उपभोग किया जा सकता है जिसे सीएलआर ( सामान्य भाषा रनटाइम ) पर संकलित और चलाया जा सकता है
जब आपके असेंबली को CLSCompliantAttribute
के साथ चिह्नित किया CLSCompliantAttribute
, तो कंपाइलर जांच करेगा कि क्या आपका कोड सीएलएस नियमों का उल्लंघन करता है और यदि आवश्यक हो तो चेतावनी लौटाता है।
एक्सेस मोडिफायर जिसके लिए सीएलएस नियम लागू होते हैं
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;
}
}
}
सीएलएस अनुपालन के नियम केवल सार्वजनिक / संरक्षित घटकों पर लागू होते हैं।
सीएलएस नियम का उल्लंघन: अनसाइन्ड टाइप्स / सोबते
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;
}
}
सीएलएस नियम का उल्लंघन: एक ही नामकरण
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 केस संवेदी नहीं है
सीएलएस नियम का उल्लंघन: पहचानकर्ता _
using System;
[assembly:CLSCompliant(true)]
namespace CLSDoc
{
public class Car
{
//Warning CS3008 Identifier '_age' is not CLS-complian
public int _age = 0;
}
}
आप _ के साथ परिवर्तनशील शुरुआत नहीं कर सकते
CLS नियम का उल्लंघन: गैर CLSComplaint वर्ग से इनहेरिट
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
{
}
}