2008-12-02 14 views
13

मैं एक ऐप्स है कि मैं एक समय पहले के बारे में सहित सीएलएस-अनुपालन VB6 से पोर्ट के लिए सता संकलक चेतावनी के एक जोड़े हैं:.NET में गैर-सीएलएस अनुपालन कोड के क्या परिणाम हैं?

Name '_AnIdentifier' is not CLS-Compliant. 
Type of parameter 'myType' is not CLS-Compliant. 

इस के बावजूद, मेरे ऐप COM और प्रबंधित ग्राहकों से ठीक प्रदर्शन करने के लिए लगता है। मैंने सीएलएस-अनुपालन कोड बनाने के लिए क्या करना है, इसका वर्णन करने वाले कई लेख देखे हैं और मैं शायद आगे बढ़ूंगा और नाराज चेतावनियों से छुटकारा पाने के लिए इसे वैसे भी करूँगा, लेकिन मुझे उत्सुकता है कि गैर-सीएलएस अनुपालन कोड की कमी क्या व्यावहारिक है शर्तों? इस छेड़छाड़ की क्या सीमाएं हैं जिन्हें मैंने अभी तक नहीं खोजा है?

उत्तर

10

असल में, आपकी कक्षा किसी भी .NET भाषाओं के साथ उपयोग किए जाने पर, अजीब रूप से कार्य नहीं कर सकती है (या अजीब तरह से काम कर सकती है, जैसे कि बड़े सकारात्मक संख्याओं को नकारात्मक माना जा सकता है)। मैं नहीं कह सकता कि वे कौन सी भाषाएं हो सकती हैं।

उदाहरण के लिए, मुझे विश्वास नहीं है कि एक अंडरस्कोर से शुरू होने वाली पहचान पहचानने के लिए एक भाषा की आवश्यकता होती है। सी # इसे अनुमति देता है, इसलिए आप वहां सुरक्षित हैं, लेकिन अन्य भाषाओं के लिए, "_AnIdentifier" छुपाया जा सकता है, या सिस्टम उत्पन्न नाम हो सकता है।

4

मैंने गलत obfuscated कोड उत्पन्न करने वाले obfuscation उपकरण के साथ मुद्दों में भाग लिया है जब कोड सीएलएस-अनुपालन नहीं है obfuscated है।

संबंधित मुद्दे