gpt4 book ai didi

c# - 为什么 C# 包含不符合 CLS 的编程结构?

转载 作者:太空狗 更新时间:2023-10-29 18:00:59 24 4
gpt4 key购买 nike

.NET 的旗舰语言包含不符合 CLS 的编程结构,这似乎很奇怪。这是为什么?

示例(来自 here):两个或多个公共(public)/ protected / protected 内部成员定义为仅区分大小写

public int intA = 0;
public int INTA = 2;

public int x = 0;

public void X()
{
}

最佳答案

即使是无符号整数也不合规(至少在公共(public) API 上如此),但它们对于进行位移位的人来说非常重要,尤其是在右移时(有符号和无符号具有不同的右移行为) .

它们的最终目的是让您可以在适当的时候自由地使用它们。区分大小写的问题我可以不那么虔诚了——尽管拥有一个字段和属性仅按大小写不同很方便,但我想我可以快乐地生活在被迫使用不同的名字的情况下!特别是现在我们已经自动实现了属性...

这类似于它允许您使用 unsafe 的方式 - 这里的区别在于一些无符号整数不会破坏整个运行时的稳定性,因此它们不需要那么强大的 molly -守卫。

您可以添加:

[assembly: CLSCompliant(true)]

如果你喜欢,编译器会在你出错时告诉你。

最后:大多数代码(按体积)不作为组件使用。它是为完成一项工作而编写的,可能会被内部的其他代码使用。主要是图书馆作者/供应商需要担心 CLS 合规性等问题。那是(从数字上看)少数。

关于c# - 为什么 C# 包含不符合 CLS 的编程结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com