2008-12-02 29 views
13

Tôi có một vài cảnh báo trình biên dịch dai dẳng đối với một ứng dụng mà tôi chuyển từ VB6 một khi trở lại về CLS-Tuân thủ bao gồm:Hậu quả của mã tuân thủ NON-CLS trong .NET là gì?

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

Mặc dù vậy, ứng dụng của tôi dường như để thực hiện tốt từ COM và khách hàng được quản lý. Tôi đã thấy một số bài viết mô tả phải làm gì để làm cho mã CLS-Compliant và tôi có thể sẽ tiếp tục và làm điều đó để loại bỏ các cảnh báo dai dẳng, nhưng tôi tò mò về những hạn chế của mã tuân thủ CLS là gì trong thực tế điều kiện? Giới hạn này là gì mà tôi chưa phát hiện ra?

Trả lời

10

Về cơ bản, lớp học của bạn có thể không truy cập được (hoặc có thể hành động kỳ quặc, chẳng hạn như số dương lớn được coi là âm), khi được sử dụng với một số ngôn ngữ .NET. Tôi không thể nói những ngôn ngữ nào có thể.

Ví dụ: tôi không tin một ngôn ngữ là bắt buộc để nhận dạng một số nhận dạng bắt đầu bằng dấu gạch dưới. C# cho phép nó, vì vậy bạn an toàn ở đó, nhưng đối với các ngôn ngữ khác, "_AnIdentifier" có thể bị ẩn, hoặc có một tên hệ thống được tạo ra.

4

Tôi đã gặp sự cố với các công cụ gây xáo trộn tạo mã không đúng chuẩn khi mã không tuân thủ CLS bị làm mờ.

Các vấn đề liên quan