The Common Language Specification (CLS) was defined to allow implementations to interact with other objects in a language-independent manner. Only the properties that are used in all languages and with which they must interoperate are made available to the objects.
The Common Language Specification consists of a set of rules that are also required by many other applications. All rules used in the type system are incorporated into the Common Language Specifications. This ensures interoperability with from different .NET languages.