奔驰cls63适合什么人开:什么是CTS和CLS之间的关系

关于奔驰cls63适合什么人开的问题,在what is cls中经常遇到, 我似乎无法理解.NET 的这些支柱。

我似乎无法理解.NET 的这些支柱。

2

CTS(公共类型系统)因此,您可以说 CTS 描述了如何在运行时声明,使用和管理类型,并促进跨语言集成,类型安全和高性能代码执行。

CLS(公共语言规范)公共语言规范(CLS)是语言设计人员和类库设计人员之间达成的协议,使用所有语言都必须遵循的基本语言功能的公共子集。

正如您在图像中看到的 CLS 是 CTS 的子集

alt text http://www.microsoft.com//msdn/columns/DoNet/images/NET_CTS1.gif
2

普通型系统

CTS 是描述类型属性的正式规范:

如何在 IL 中布局类型。

每个类型可以由 0 个或多个以下成员组成:属性、字段、方法和事件。

访问修饰符(和 C # 等效项):私有(私有),家庭(受保护),家庭和程序集(N / A),程序集(无修饰符 / 内部),家庭或程序集(受保护的内部),公共(公共)

类型继承,虚方法

每个类型必须从 System.Object 继承

每种语言仅实现 CTS 功能的子集。

通用语言规范

CLS 在 IL 级别促进了.NET 语言之间的互操作性:

它是一个编译器规范,它确定编译器必须发出什么 IL 才能使代码在.NET 语言之间可互操作。

CLS 描述了一组通用功能,允许程序使用这些功能,并且仍然可以与其他.NET 语言编写的程序互操作。

CLS 特征是 CTS 特征的子集。

只有当你想用多种语言编写程序时,CLS 才是重要的。

需要注意的重要一点是,CLS 必须仅由标记为公共的代码段遵守,因为这些是其他程序唯一可用的代码段。

如果我们用 [assembly:CLSCompliant (true)] 属性注释代码,那么编译器将检查代码是否符合 CLS。

例如:

CLS 指出,成员名称不能区分大小写:因此Foo()foo()是一回事。

unsigned int 不能使用,因为它不是由所有.NET 语言实现的

0

如前所述,CLS 是 CTS 的子集。但是这些术语的实际定义还有很多。

我建议阅读CLR via C#

0

一些例子肯定会帮助这里。

不符合 CLS 的关键之一是无符号数字(例如 uint)。另一个是函数指针(委托)。如果它在行的两端都没有意义,那么它就不是“常见的”;CLS 定义了一组通用类型,这些类型不仅在 CLR 中工作,而且在某些常见且指定良好的互操作方案中工作。

如果要强制实施 CLS 符合性,可以通过将“CLSCompliant”特性添加到项目中的 assemblyinfo.cs 文件中,将其添加到程序集中。

[assembly: CLSCompliant(true)]

您还可以将其添加为类的属性。

[CLSCompliant(true)]
public class HospitalLocationEntity : EntityBase
{
    ...
}

做这些事情会导致 C # 编译器(或 VB,在属性上具有适当的 VB 语法)引发编译错误,以违反 CLS 合规性。

此外,将 [ScriptService] 和 [ScriptMethod] 属性添加到 Web 服务 (.asmx) 将导致服务生成 JSON 服务输出,并要求在类和程序集级别将用于服务响应的数据标记为 CLSCompliant。

<System.Web.Services.WebService()> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()> _
Public Class HospitalLocationService
    Inherits System.Web.Services.WebService
    <WebMethod()> _
    <ScriptMethod()> _
    Public Function GetAll() As List(Of HospitalLocationEntity)
        Return (New HospitalLocation()).GetAll().Data
    End Function
End Class

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(358)
买铅笔c语言:使用imagemagick将图像转换为铅笔画(不是铅笔素描 )
上一篇
征收补偿程序:Matlab中的 PID补偿
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 10 41
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 74 37
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 49 39
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 70 22
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 11 54
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 83 84
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 44 53
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 91 27

发表评论

登录 后才能评论

评论列表(19条)