Tag: 编程语言

是否有与.NET兼容的语言不支持无符号类型?

假设我正在用C#编写一个库,我不知道谁会使用它。 库的公共接口有一些无符号类型 – uint,ushort。 显然,这些类型不符合CLS,从理论上讲,可能存在无法使用它们的语言。 那些现实的语言是否存在?

为什么C#generics的专业化有限?

问题是“什么是具体化?” 评论C#的generics: 维护类型信息,通过使用reflection检查类型参数,允许在一定程度上进行特化。 但是, 由于在任何具体化发生之前编译generics类型定义 (这是通过根据类型参数的约束编译定义来完成的 – 因此,编译器必须能够,因此专业化程度是有限的。即使在没有特定类型参数的情况下,“理解”该定义)。 “专业化”是什么意思? 它与具有特定类型参数的generics类型的实例化不同吗? “专业化程度有限”是什么意思? 为什么它“是在任何具体化发生之前编译generics类型定义的结果”?

什么是编程语言的Reflection属性?

它说大多数高级动态类型语言是反身的。 维基百科上的反思(计算机编程)解释说,但它并没有真正给出它的含义。 任何人都可以通过相关的例子以更简单的方式解释它吗?

语言真的依赖于图书馆吗?

我一直想知道如何从编程语言到其库来管理依赖项。 以C#为例。 当我开始学习计算时,我会假设(错误的是结果)语言本身是独立于最终可用的类库而设计的。 也就是说,首先定义语言关键字集(例如for , class或throw )加上语法和语义,并且可以单独开发可以从该语言使用的库。 我曾经认为,这些库中的特定类不应该对语言的设计产生任何影响。 但这不起作用,或者不是一直都行不通。 考虑throw 。 C#编译器确保throw的表达式解析为exception类型。 Exception是库中的一个类,因此它根本不应该是特殊的。 除了C#编译器为其指定特殊语义外,它将与其他任何类一样。 这是非常好的,但我的结论是语言的设计确实取决于类库中特定元素的存在和行为。 另外,我想知道如何管理这种依赖。 如果我要设计一种新的编程语言,我会用什么技术将throw的语义映射到exception的特定类? 所以我的问题是两个: 我是否认为语言设计与其基类库紧密耦合? 如何在编译器和运行时内管理这些依赖项? 使用了什么技术? 谢谢。 编辑。 感谢那些指出我的第二个问题非常含糊的人。 我同意。 我想要学习的是编译器存储的所需类型的引用。 例如,它是否通过某种唯一ID找到类型? 发布新版本的编译器或类库时会发生什么? 我知道这仍然很模糊,我不期待一个精确的,单段的答案; 相反,欢迎指向文学或博客文章。

是C#还是C#.NET?

我总是看到人们写“C#”和“C#.NET”。 这种语言的正确名称是什么? C#或C#.net? 我很抱歉这个愚蠢的问题,但它确实令人困惑(也许还有另一种名为C#.net的编程语言)… 编辑:如果我正在编写针对.NET Framework的编程,为什么要调用这个C#.NET? 我可以将C#语言与其他框架一起使用吗?

为什么C#将匿名方法和闭包实现为实例方法,而不是静态方法?

因为我不是编程语言方面的专家,所以我很清楚这可能是一个愚蠢的问题,但我最好能告诉C#通过将它们变成匿名嵌套类的实例方法来处理匿名方法和闭包[1] ,实例化这个类,然后将委托指向那些实例方法。 看来这个匿名类只能被实例化一次(或者我错了吗?),那么为什么不让匿名类变为静态呢? [1]实际上,看起来有一个闭包类和一个不捕获任何变量的匿名方法,我不完全理解其中的任何一个。

什么是部分课程?

它是什么以及如何在C#中使用。 你能在Python / Perl中使用相同的概念吗?

在CLR上实施语言的书籍和文献

我正在寻找有关CLR(和/或可能是DLR)内部工作的书籍和文献,我的长期目标是在CLR上实现一种简单的语言。

以编程方式启用/禁用硬件设备

可能重复: [.NET]如何禁用系统设备? Win32 API函数以编程方式启用/禁用设备 在C#中,有没有办法以编程方式禁用和重新启用设备? 我正在寻找与您进入设备管理器并右键单击设备并禁用或启用它时基本相同的function。 我怎么能在C#中做到这一点?

Guid Uniqueness在不同的机器上

可能重复: GUID是100%独一无二的吗? 在阅读Guid上的所有post后,我仍然不清楚一件简单的事情: 由不同机器生成的Guids也保持其唯一性。 我已经阅读过关于单机的guid唯一性,但我仍然不了解不同机器的唯一性