您如何在心理上处理从托管代码编写到非托管代码?

Gle*_*val 13 c# c++

我写的大约80%的代码都是在C#中.另外~20%是C++.每当我不得不从C#切换到C++时,我需要花一点时间才能在思维方式上"转变"思维.我使用指针和内存分配做出简单的错误,这是我在大学时不会做的.调整期过后,我很好,用本机代码写自然.

这是正常的吗?有没有其他人经历类似的事情,如果是这样,你怎么做才能减少浪费的时间?

编辑:我不是说我无法使用内存分配和指针.我经常在我的C++代码中使用它们.在C#工作很长一段时间后不会立即.

Blu*_*eft 22

我也有同样的问题.我为Visual Studio使用完全不同的颜色方案(C++的暗光照明; C#和VB的暗光照射).

似乎可以帮助我的大脑缓解转变.


JRL*_*JRL 7

有一个频繁的错误清单,当从一个切换到另一个时,你会做,并且每次都参考它.简单而有效.


jal*_*alf 7

我使用指针和内存分配做出简单的错误,这是我在大学时不会做的.

好吧,这是你的问题.学习C++不够好,就看你如何避免与指针和内存分配乱搞摆在首位.

然后在托管代码和非托管代码之间切换变得微不足道.

这对你来说只是一个问题,因为你在C#之间切换,你不需要担心任何事情,而C++,你不熟悉安全使用.

C++中的内存管理并不困难.如果你弄错了,那是因为你还没有正确地学习它.在精心设计的C++代码中,它根本不是一个问题.它会自动发生,就像在C#中一样.

  • @Glenn:不,我支持我说的话.我的观点是,当你使用正确的技术来管理*内存分配(显然必须发生)时,那么转换到C++和从C++转换几乎是微不足道的.当你试图通过跟踪没有明确所有权语义的指针并且不使用RAII类来痛苦地管理所有事情时,你会让事情变得非常困难,然后,是的,来自C#的飞跃要大得多. (2认同)