zoukankan      html  css  js  c++  java
  • .NET CLS(Common Language System)简介

    .NET 框架中的通用语言规范是什么?

    CLS只不过是一组准则或规则。当这些规则或准则集遵循任何DotNet支持的编程语言时,则该代码保证被其他DotNet编程语言使用。
    例如,如果您编写 C# 代码,并且确保遵循通用语言规范,则 C# 代码可以由任何其他支持DotNet的编程语言使用。

    为了理解这个概念,下面将违反通用语言规范,然后再看看会发生什么情况。

    了解 CLS 的示例

    正如我们知道的,C# 是大小写敏感的,而 VB 不对大小写。这意味着在 C# 中,您可以多次声明具有大小写差异的相同成员名称,但在 VB 中是不可能的。
    因此,让我们创建两个类库项目。一个使用 C#,另一个使用 VB。然后,我们将尝试使用 VB 类库项目中的 C# 类库项目。

    创建 C# 类库项目

    使用 C# 编程语言创建名称为 CsharpClassLibrary的类库项目。创建 C# 类库项目后,然后添加一个名为计算器的类,然后复制并粘贴以下代码。
    如下面所看到的,我们创建了两个同名但大小写差异的方法。一个方法以大写字母 C 开头,而另一个方法以小 c 开头。

    创建 VB 类库项目

    在同一个 CsharpClassLibrary 解决方案中,让我们添加另一个类库项目,名称为 VBClassLibrary,但使用 VB 作为编程语言。
    在这里,在此项目中,我们要使用 C# 类库项目,因此首先添加对 CsharpClassLibrary 项目的引用。然后创建一个名称为"TestClass"的类,并在其中复制粘贴以下代码。

    在 VB 类库中,出现了以上错误。这是因为 VB 不对大小写敏感,并且它找到了两个同名的方法。这意味着我们违反了 C# 代码中的通用语言规范。

    "计算"是模棱两可的,因为类中存在多种具有此名称的成员。

    如何检查代码是否符合 CLS?

    为了检查您的代码是否遵循通用语言规范,首先,您必须在文件中启用 CLS AssemblyInfo.cs。因此,转到 C# 类库项目并打开AssemblyInfo.cs"属性"文件夹中的该文件。
    打开类AssemblyInfo.cs,然后按照以下 2 个步骤操作。

    步骤1:将系统命名空间导入为
    using System;
    步骤2:在此文件底部添加以下 CLSCompliant 属性,并将其值设置为 true
    [assembly: CLSCompliant(true)]

    然后,再次回到上面的编写两个重名的计算方法当中, 即可查看到小写的方法,会提示警告:

  • 相关阅读:
    NHibernate之旅(14):探索NHibernate中使用视图
    NHibernate之旅(18):初探代码生成工具使用
    NHibernate之旅(15):探索NHibernate中使用存储过程(上)
    接下来5年中有用的10项开发技能
    NHibernate之旅(22):探索NHibernate一级缓存
    NHibernate之旅(24):探索NHibernate二级缓存(下)
    NHibernate之旅(17):探索NHibernate中使用存储过程(下)
    NHibernate之旅(11):探索多对多关系及其关联查询
    Python入门示例系列18 条件控制
    .NET计划之配置ASP.NET运行环境
  • 原文地址:https://www.cnblogs.com/zh7791/p/13704909.html
Copyright © 2011-2022 走看看