Подтвердить что ты не робот

Почему я должен писать CLS-совместимый код?

Я нашел много страниц о соблюдении CLS.

Я понял, что соответствие CLS:

Многие peolple пишут, что "если вы пишете код, вы должны написать его CLS-совместимый". Но, насколько я могу прочитать, нет никаких оснований использовать CLS-совместимость в общем программном обеспечении.

Я прав, или я что-то пропустил?

4b9b3361

Ответ 1

Если вы пишете библиотеку или фреймворк, имеет смысл обеспечить, чтобы ваша библиотека могла использоваться с любого языка CLR.

Ответ 2

Соответствие CLS особенно важно, если вы распространяете библиотеки - в частности, при написании CLS-совместимых гарантирует, что ваши библиотеки будут использоваться всеми языками, совместимыми с CLS.

Например, Visual Basic не чувствителен к регистру, тогда как С#. Одним из требований соблюдения CLS является то, что публичные (и защищенные) имена участников не должны различаться только в зависимости от случая, гарантируя тем самым, что ваши библиотеки можно безопасно использовать с помощью кода Visual Basic или любого другого языка .NET, который не отличается от случай.

Ответ 3

Не может быть определенной причины, чтобы ваш код был совместимым с CLS, но люди ссылаются на то, что он является "лучшей практикой" - что-то, что вы должны делать, потому что это хорошая привычка, а не быть заметно лучше для конкретный сценарий.

Другими словами, рекомендуется сделать ваш код CLS совместимым, если у вас нет причин для этого.

Ответ 4

Ответ заключается в том, чтобы обеспечить максимальную совместимость между языками .NET. CLS - это lingua franca, которая позволяет сборкам С# работать с F #, Iron Python, С++/CLI, VB.NET, Boo и всеми другими языками .NET. Шаг за пределами этой границы, и ваша сборка может работать правильно, но не обязательно.