编程20多年了C#越来越让我惊喜(用C#+Winform编程做UI简直太方便了拖拖拽拽就好了然后代码中直接用控件名称取值赋值这是其强大之处)
(用C#+Winform编程做UI简直太方便了拖拖拽拽就好了然后代码中直接用控件名称取值赋值这是其强大之处)
https://m.toutiao.com/is/dqhDBTp/?=编程20多年了
最开始接触.net大概是2003年,当时用的还是framework1.1,那是CAM项目,使用.net主要是利用RemotingService做分布式开发,我当时做其中的一个子系统,因为之前一直都是C++开发,对C#一无所知,我们组用的是托管C++。
后来随着对C#的了解,逐渐领略到了它的强大之处。用C#+Winform编程做UI简直太方便了,拖拖拽拽就好了,然后代码中直接用控件名称取值、赋值。用VC和MFC,得先找到找到那个控件,然后再转换成相应的类,才能继续操作。
这是C++和MFC对控件的取值代码:
CString context;
GetDlgItem(IDC_EDIT_CTX)->GetWindowTextA(context);
这是C#和Winform对控件的取值代码:
string name = tbxName.Text;
其他方面相比较C++而言,C#还有很多便利的地方:
字符集:C#默认就是utf-8,C++涉及到中文,还得考虑宽字符的转换;
托管内存:除了系统资源,C#基本上不用太担心内存泄露;C++,轻则程序崩溃,重则内存泄露,而且一堆指针下来以后,很难查;
当时唯一感觉不爽的就是C#1.0时还不支持泛型,而C++是支持的。
到了C#2.0的时候就支持泛型了,也就是在Framework2.0之后,我基本上就不再用C++开发了。
由于一直在Windows下编程,Java简直就没法用,Windows下的Java开发跟C#比起来真的很垃圾,随便一个Java开发的小破程序,一运行起来至少就几百M内存,而且越来越大,过段时间就得重启,Java给我的印象就是运行缓慢且臃肿。当然这个代价就是让我错过了移动开发的最好时机,但也让我领略了C#的全能之美。
2006年,给上海一家水厂做ERP,历时3年20多个子系统,B/S+C/S相结合,全部都是用C#+WinForm+WebForm来完成;
2010年,给烟台一家建筑企业做ERP,大概2年10几个子系统,B/S架构,也都是用C#+WebForm来完成;
2013年到现在,自己创业,写了5-6个软件产品,仍然是C#+WinForm+WebForm,官网、爬虫、GDI+、自编脚本引擎,仍然是完美完成各类任务。
2021年,PC端日渐萎缩+疫情影响,我打算做跨平台开发,结果发现原来早已经有了Unity这么强大的引擎出现,完美与C#融合,以前是靠mono,可能还考虑有不稳定的因素,现在竟然支持IL2CPP的编译支持,这还有什么可顾虑的了呢?接下来的项目我就打算用Unity做个小游戏来试水。
不做游戏的话,也可以考虑用Xamarin,听说这个也是跨平台的,不过我现在没用用上,不清楚会有多少坑。
希望下个10年,仍然可以继续用C#在代码世界翱翔吧,献给同样喜欢C#的同行们:)