vc.net (托管)与c#.net比较,哪个好?
vc.net (托管)与c#.net比较,哪个好?习惯了vc++,会用 C#.net,但是就是不习惯c#的风格,还有就是没有指针,垃圾回收。
想用vc.net(托管),可是资料特别少,不知道有什么缺点?大家都谈谈 --------------------编程问答-------------------- vc.net托管编程的时候 最好纯托管,这样就跟C#差不多了。
要是和本地代码混合的话交互的部分会累死人的。 --------------------编程问答-------------------- 首先:
1. C#中取消了指针操作,因为指针操作虽然灵活,但是,非常容易引起内存方面的问题,我想楼主应该有深刻的理解,换句话讲,如果你非要使用指针也不是不可以,只要使用非托管代码就OK了,但是这样的话,需要对其代码的安全性有所保证。
2. C#中的垃圾回收是自动完成的,不需要像C++中手动清楚各种对象,这些工作都交给了垃圾回收器自动完成,其有一套自己的处理各种对象资源释放的机制,楼主可以自己了解一下,从安全角度来说,垃圾回收器可以满足我们的需要。
3. 当然,很多应用,尤其是许多的com仍旧还是用C++开发,一方面是因为其灵活的代码能力,还有就是已经使用C++积累了相当一部分的程序资源,不能一下子说放弃就放弃了,而且,有很多人仍旧抱着C++比C#更加安全的指导思想,种种原因吧,但就从一个很简单的dll 地狱,应该就可以看出C#是一种发展式的语言,不是么?
个人浅见,与君共享~ --------------------编程问答-------------------- vc.net (托管)与c#.net比较,哪个好?
:都一样的都是用的.net 框架;
习惯了vc++,会用 C#.net,但是就是不习惯c#的风格,还有就是没有指针,垃圾回收。
:c# 有指针和VC不太一样就是 VB 没有才是真的、垃圾回收如果托管了都一样的
想用 vc.net(托管),可是资料特别少,不知道有什么缺点?大家都谈谈
优点是可以和本机代码直接互相操作,而且可以在一个项目里混合写托管的和非托管的
,缺点是编译完成后的dll等很多混淆器混淆不了,不过VC托管本来就很乱反编译后
不混淆也很乱,还有就是VC托管视乎不够成熟,1.1 2.0 变化很大的说;
还有个缺点就是 VC 托管的语法没C# 简洁感觉,有些时候代码量要大些;
还有就是资源少,vs 里的托管项目也没 C# 多少老了,起码web这块 wpf wf wcf 的项目都建立不了
不过估计不是不能写就是没项目模板
写写标准库,本机exe,服务还可以; --------------------编程问答--------------------
1、c#可以使用非托管吗?还能用指针?
2、垃圾回收是.net的clr的功能,vc.net托管代码也应该有垃圾自动回收功能吧?而且还能手动释放吧,是不是更强?
不知道我说得对不? --------------------编程问答--------------------
1 C#有unsafe关键字,使用了他就可以使用指针了.
2 vc.net托管代码 是使用gcnew分配托管对象的. 但没有对应的删除操作.你觉得该如何手工释放
--------------------编程问答-------------------- 但是vc的托管代码中也可以使用 new 和delete关键字,是怎么回事啊?
char* p;
p=new char[8];
delete p;
--------------------编程问答-------------------- 没有哪个好哪个不好的说法了
都是一家的东西。
主要是楼主习惯那个的问题了。
建议还是直接使用c#,如果要写非托管代码的话就用c++
偶也是从c++过来的 --------------------编程问答-------------------- 没有纯粹的好和不好,假设某个不好,为什么还有人用呢?呵呵 --------------------编程问答--------------------
new 和delete 是给非托管的代码用的,不信你可以试试用new一个System.String看看
托管的东西都得用gcnew --------------------编程问答-------------------- 老说 dll 地狱, 现实中有几个项目会复杂到有那个地狱的境界 --------------------编程问答-------------------- 微软 的 directx 的 wrapper assembly 就是 vc /clr mix 编译的 --------------------编程问答--------------------
但是普通的类型都是可以在托管里面确实可以用new来分配内存呀,正如上面的例子,这个怎么解释呢? --------------------编程问答--------------------
.....
普通类型既支持托管分配又支持非托管的内配。
托管的类型只能用gcnew分配。
--------------------编程问答-------------------- 哦 说的也是
反正都差不多吧
补充:.NET技术 , VC.NET