Visual C++创建CLR的windows窗体应用程序和Visual C#的windows窗体应用程序区别?
我用VS2012里面的VisualC++创建CLR的windows窗体应用程序和VisualC#的windows窗体应用程序,感觉都一样,其实有什么不同?是不是只是C++...
我用VS2012里面的Visual C++创建CLR的windows窗体应用程序和Visual C#的windows窗体应用程序,
感觉都一样,其实有什么不同?是不是只是C++和C#的特性不同?创建windows窗体程序时,用哪个都一样?
还有,能不能通俗地解释下什么是托管编程?
谢谢。 展开
感觉都一样,其实有什么不同?是不是只是C++和C#的特性不同?创建windows窗体程序时,用哪个都一样?
还有,能不能通俗地解释下什么是托管编程?
谢谢。 展开
1个回答
展开全部
先解释下托管程序,我们平时写的C/C++程序经常会使用指针呀、动态分配内存啊之类的技术,使用指针直接操作内存虽然高效,但程序写起来复杂且容易出漏洞(比如忘记回收内存等等),对复杂应用的开发,往往过于繁琐,于是便出现了托管的概念,所谓托管就是由系统(虚拟机)来负责分配、回收内存。CLR是Common Language Runtime的缩写,和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和回收)。
Visual C++创建CLR的windows窗体应用程序,是以C++为语言基础,使用CLR管理资源的编程模式,为了扩展性,也允许在托管代码中嵌入非托管代码(即传统的内存分配回收模式)。
而Visual C#的windows窗体应用程序,则直接使用C#语言和CLR管理资源,不能直接操作内存。
因此可以认为C#是更为纯正的CLR程序。
至于用哪个,建议用C#,倒是没有什么太大的优劣之分,只是C#是专门设计用来写.net程序的,而C++ CLR有种过度的意味。
个人看法,仅供参考。
Visual C++创建CLR的windows窗体应用程序,是以C++为语言基础,使用CLR管理资源的编程模式,为了扩展性,也允许在托管代码中嵌入非托管代码(即传统的内存分配回收模式)。
而Visual C#的windows窗体应用程序,则直接使用C#语言和CLR管理资源,不能直接操作内存。
因此可以认为C#是更为纯正的CLR程序。
至于用哪个,建议用C#,倒是没有什么太大的优劣之分,只是C#是专门设计用来写.net程序的,而C++ CLR有种过度的意味。
个人看法,仅供参考。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询