企迪网-免费的企业信息发布平台 加入收藏
企迪网

CLS

日期:2013-06-04 来源:本站 作者:管理员
关键字:
.NET 公用语言规范,可以保证C#组件与其他语言组件间的互操作性..NET Framework将CLS定义为一组规则,所有.NET语言都应该遵循此规则才能创建与其他语言可互操作的应用程序,但要注意的是为了使各语言可以互操作,只能使用CLS所列出的功能对象,这些功能统称为与CLS兼容的功…


   .NET 公用语言规范,可以保证C#组件与其他语言组件间的互操作性.

.NET Framework将CLS定义为一组规则,所有.NET语言都应该遵循此规则才能创建与其他语言可互操作的应用程序,但要注意的是为了使各语言可以互操作,只能使用CLS所列出的功能对象,这些功能统称为与CLS兼容的功能。

  例如:C#支持无符号数字类型,该特征能通过CTS的测试,但CLS却仅仅识别符号数字类型。因此,如果用户在一个组件中使用C#的无符号类型,就可能不能与不使用无符号类型的语言(如VB.NET)设计的.NET组件实现互操作。这里用的是“可能不”,而不是“不可能”,因为这一问题实际依赖于对non-CLS-compliant项的可见性。事实上,CLS规则只适用于或部分适用于那些与其他组件存在联系的组件中的类型。实际上,用户能够安全实现含私有组件的项目,而该组件使用了用户所选择使用的.NET语言的全部功能,且无需遵守CLS的规范。另一方面,如果用户需要.NET语言的互操作性,那么用户的组件中的公共项必须完全符合CLS规范。

  CLS公共语言规范

    公共语言规范(Common Language Specification,CLS)和通用类型系统一起确保语言的互操作性。CLS是一个最低标准集,所有面向.NET的编译器都必须支持它。因为IL是一种内涵非常丰富的语言,大多数编译器的编写人员有可能把给定的编译器的功能限制为只支持IL和CLS提供的一部分特性。只要编译器支持已在CLS重定义的内容,这就是很不错的。

    提示:编写非CLS兼容代码应该是完全可以接受的,只是在编写了这种代码后,就不能保证编译好的IL代码完全支持语言的互操作性。


分享到:
  • 北京中百信信息技术股份有限公司北京中百信信息技
  • 福瑞博德软件开发公司福瑞博德软件开发
  • 北京护航科技有限公司北京护航科技有限
  • 银江股份有限公司银江股份有限公司
  • 远光软件远光软件
  • 中国软件与技术服务股份有限公司中国软件与技术服
  • 启明信息技术股份有限公司启明信息技术股份
  • 戴尔戴尔
  • HPHP
  • 东华软件股份公司东华软件股份公司
  • 东软集团东软集团
  • 用友软件股份有限公司用友软件股份有限