C# 为什么IdAtReaDead类可以用C++实现而不是C++? 我在许多文章中看到,数据库连接对象(如SqLaNeNION、DataReader等)使用C++中实现的类,是非托管代码类型,使它们能够手动处理。

C# 为什么IdAtReaDead类可以用C++实现而不是C++? 我在许多文章中看到,数据库连接对象(如SqLaNeNION、DataReader等)使用C++中实现的类,是非托管代码类型,使它们能够手动处理。,c#,C#,那么,为什么这些类的实现不能在c中完成,这样它们就可以由CLR管理,或者我们有什么理由可以使用c来实现这一点呢?.NET基本上用.NET类(如SqlConnecion和DataReader)来包装本机Win32 API的一部分,这样可以更容易地使用这些API,而不必编写非托管代码你自己当然,还有一些非托管代码涉及到某些地方,例如,可以访问文件系统。CLR本身没有在C中实现。您确定吗?它闻起来像个谎言…这就是让它们成为非托管代码的原因。。。为什么会这样?你可以在C++中写托管代码。我在很多文章中读

那么,为什么这些类的实现不能在c中完成,这样它们就可以由CLR管理,或者我们有什么理由可以使用c来实现这一点呢?

.NET基本上用.NET类(如SqlConnecion和DataReader)来包装本机Win32 API的一部分,这样可以更容易地使用这些API,而不必编写非托管代码你自己当然,还有一些非托管代码涉及到某些地方,例如,可以访问文件系统。CLR本身没有在C中实现。

您确定吗?它闻起来像个谎言…这就是让它们成为非托管代码的原因。。。为什么会这样?你可以在C++中写托管代码。我在很多文章中读到……NithinB我认为您混淆了托管代码和托管资源。那么,为什么不能将非托管资源设为托管?因为CLR和垃圾收集器对非托管资源(如打开的文件和网络连接)一无所知。它只为托管代码提供服务。让我们考虑它们是否使用FielestRAM类,并且我们将关闭它,我们将使用{}或“关闭”来调用它。如果他们在类方法本身中使用FileStream而不是在其中创建一个close方法后关闭FileStream会怎么样呢。如果他们使用的是FileStream类呢?他们是谁?而且FileStream是一个托管的.NET类,所以我不理解你的问题。您可能应该仔细阅读.NET的基础知识。