谈谈你对语言的类库和语言之间的关系理解

cfans1314 2011-01-13 04:44:31
c++语言的类库有c语言和c++语言实现的,也应该有汇编语言实现的类库.
c#语言的类库以我现在的认知水准,是用c#实现的。
js的类库是大多是用js实现的?

请大家谈谈自己关于类库和语言的认识吧。谢谢!
...全文
163 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也说两句:
比如C++的类库,我们可以自己模仿类库的写法,写出自己的string,vector==,用的还是纯C++语言
比如用C#,谁模仿写个Form,或者Timer看看?用纯C#?
往里深究下去,感觉C#很渺小,.Net很杂烩,Java在这一点上比.Net/C#要强
vrhero 2011-01-14
  • 打赏
  • 举报
回复
认知很有问题...

.NET是IL语言,其实跟C#、VB没有太大关系...只要你愿意并有能力,你完全可以开发一种新语言去实现所谓C#的类库,当然你也可以用C++或别的什么语言去实现所谓C#的类库...只要能够符合.NET CLR的标准即可...
cfans1314 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bloodish 的回复:]
引用 6 楼 cfans1314 的回复:
我是这样理解的。经过c#类库包装的都是托管代码,而经pinvoke调用的系统api则为非托管代码。因此你说的包装了很多非托管代码这种说法是不……


平台封送(PInvoke)跟类库又是两码事,建议先弄清楚概念再说.
[/Quote]

恩,我是这个理解的:平台调用服务 (PInvoke) 允许托管代码调用在 DLL 中实现的非托管函数。因此

“经过c#类库包装的都是托管代码,而经pinvoke调用的系统api则为非托管代码。因此你说的包装了很多非托管代码这种说法是不……”
我没觉得不妥,没有争论的意思,只是探讨。
bloodish 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cfans1314 的回复:]
我是这样理解的。经过c#类库包装的都是托管代码,而经pinvoke调用的系统api则为非托管代码。因此你说的包装了很多非托管代码这种说法是不……
[/Quote]

平台封送(PInvoke)跟类库又是两码事,建议先弄清楚概念再说.
bloodish 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 cfans1314 的回复:]
c#语言的类库以我现在的认知水准,是用c#实现的。
[/Quote]

你的认知要提高.

任何支持编译成中间语言(IL)的语言都可以给C#开发类库,但其实这么说本身就很别扭

C#编的的类库可提供给VB.Net使用,C++/CLI编写的类库也可以提供给C#使用,
如果你有能力,直接用IL写也未尝不可.各种托管语言之间的类库使用可以说是互通的.



meihua561 2011-01-14
  • 打赏
  • 举报
回复
c# 调用 API 请问API是用什么写的 ????
其实程序都是一个样,语言却是有多种的特点的,有的做底层很爽,有的做高级都爽的,有的写着简单,有的运行很快,我们只有熟悉这些特点,才能在使用的过程中,顺心顺手。
对于引用别的语言 我感觉所有语言都应该这样,扩展性好 才能更强。

这个问题也曾经困扰我很久,总是想知道WINDOWS是用什么写的 LINUX是用什么写的 SQL是用什么写的 BIOS是用什么写的,总是感觉 如果WINDOWS是什么写的 我就学什么语言,因为这种语言写WINDOWS最好,其这是大错特错了,真正的好项目, 其实就是 成本和质量的一个平衡点。成本高了不好,质量低了也不好。
cfans1314 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luminji 的回复:]
c#语言的类库以我现在的认知水准,是用c#实现的。

这句话是错误的。c#的类库包装了很多非托管代码(即用C++或C写的代码),基本上,你在C#类库的方法原型中发现带extern的都是非托管代码
[/Quote]


我是这样理解的。经过c#类库包装的都是托管代码,而经pinvoke调用的系统api则为非托管代码。因此你说的包装了很多非托管代码这种说法是不正确的。而c#的类库中有关键字 extern 声明的只能说在C#调用了系统的api,因此还是C#来实现的。就像在vb,和delphi中调用系统api一样,api只是为了完成特定的功能,整体上还是属于这个语言来实现的。
s8975565 2011-01-14
  • 打赏
  • 举报
回复
C#的前身就是C不然也不会叫C#了
JustLovePro 2011-01-14
  • 打赏
  • 举报
回复
难道又是C写的?
wuyq11 2011-01-13
  • 打赏
  • 举报
回复
可问C#编译器是用什么语言编写的

  • 打赏
  • 举报
回复
c#语言的类库以我现在的认知水准,是用c#实现的。

这句话是错误的。c#的类库包装了很多非托管代码(即用C++或C写的代码),基本上,你在C#类库的方法原型中发现带extern的都是非托管代码
flyerwing 2011-01-13
  • 打赏
  • 举报
回复
一般其实就是用类库,扩展类库.

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧