CLS (Common Language Specification) закладывает основу для общего набора правил соответствия, который гарантирует, что другие языки (VB.NET, F # и т. Д.) Могут использовать сборки, которые вы создали с помощью C #. Массив, отличный от нуля, не будет совместимым, так как другие языки ожидают, что массивы будут начинаться с нуля.
Вот пример, который легче понять:
class Foo
{
public void Bar() { }
public void bar() { }
}
Этот тип будет не совместимым с CLS, поскольку содержит два члена, которые различаются по имени только по типу. Как кто-то, использующий VB.NET, может различать между Bar
и bar
, поскольку компилятор VB.NET не учитывает регистр?
Таким образом, в основном CLS представляет собой набор таких правил, которые гарантируют взаимодействие между языками.