用 visual c++/c# 编写的 winforms 编程与用 visual c++(MFC) 编写的 windows 编程有何不同。
我还想知道 C# 是否足够强大,可以像其他形式一样进行 Windows 编程。
最佳答案
我不确定是否有人可以对这个问题给出一个单一的答案,我只能尝试指出许多差异中的一些:
C# 和 C++ 截然不同:内存管理、包结构、类布局、事件/委托(delegate)、泛型/模板......甚至在 C++ 和 C# 中编写非 GUI 应用程序也是完全不同的。即使不是为 GUI 开发设计的,C# 语言的许多功能也非常有用。
与 MFC 相比,Winforms 具有非常好的可视化设计器支持。对于 95% 的所有应用程序,使用 winforms 会大大提高工作效率。对于自定义控件(您自己的或第三方的)尤其如此
另一方面,MFC 提供了更多的框架支持(文档/ View 结构等)。
对于某些应用程序,MFC 应用程序的响应速度似乎更快。在大多数情况下,winform 应用程序可以优化为具有相同的性能,但这高于 winforms 开发人员的平均水平(通常低于 MFC 程序员的知识水平)。
MFC 比 Winforms 更直接地封装了 WIN32 API。在某些情况下,您甚至需要直接从 winforms 访问 WIN32 API。那么如何做到这一点并不总是很清楚(也没有很好的记录)。同样,典型的 winforms 程序员对 WIN32 API 的了解少于 MFC 程序员,因此在这些情况下他更有可能遇到麻烦。
我认为 winforms 得到了很好的支持,您几乎可以解决所有 GUI/非 GUI 任务。对于大多数任务,编写 C# 程序会更容易。
我敢肯定,赞成/反对的论点还有很多,我只是记下了我想到的少数...
关于c# - Visual C++/C# 中的 WinForms 编程与 Visual C++(MFC) 中的 Windows 编程有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293191/