C#在汽车行业中的应用

背景
不少读者问过【思想】,公众号里的工具都是用什么编写的 。答案就是C# 。那么本期内容就是聊下C#,内容涉及C#的介绍、C#在汽车行业中的运用、分享【思想】的学习经历与C#视频教程,希望能给这个行业想学编程的工程师提供个思路 。
前言
先从【思想】是如何结识C#的,那应该是大一,【思想】刚完成C语言的学习后就对编程有了很大的兴趣 。所以就自学了C++,想做一些带界面的程序 。由于【思想】大学学的是机械设计与自动化,没系统的学习过数据结构这类的专业课,内存管理经常没做好,内存溢出等错误让【思想】差点放弃学习,后来在一位妹子的推荐下接触了C#,才挽回了一点信心 。
C#是什么?
C#读作,它是微软.NET框架的其中一种与语言形式 。起初的.NET框架编译器支持C#与VB,NET两种语言,C#的语法继承了C/C++,则继承了VB 。

C#在汽车行业中的应用

文章插图
与Java、C++等一样,C#也是一种面向对象的编程语言 。C#对学过C/C++语言的朋友是比较友好的,所以受众群体也比较广一点 。现在主流的系统(Win7以上版本)默认都支持.Net4.0,基本开发出来的程序也不需要额外的安装运行库,可直接运行 。
C#在汽车行业中的应用

文章插图
C#的官方开发环境就是宇宙最强IDE- 。目前最新版已经出到2019,但是安装后的体积很大 。简易想学习的可以安装比较早期的版本,推荐使用2015版 。可以支持大家使用C#开发可执行文件(EXE),动态链接库(DLL),甚至网页程序 。
说了这么多,C#相较于C++到底有什么优势与不足呢?之前介绍过为什么【思想】结识了C#,这里就详细说说:在开发比较复杂的程序时,为什么要搭建数据结构 。
C#在汽车行业中的应用

文章插图
举个例子:在学习C语言的数组功能时,就直接int a[10]这么一个语句就搞定了 。但是实际上我们希望数组的长度是动态的 。这里就要用到链表、堆栈、列队等数据结构,同时我们还要对这些数据结构多排序检索等操作 。这就需要程序员频繁对内存控件进行操作 。
C#在汽车行业中的应用

文章插图
这就很容易出现问题,上图这样内存错误的情况也成为家常便饭 。当时【思想】学习C++的时候也经常因为这种内存错误哭晕在厕所 。
所以,【思想】个人认为C#最棒的优点就是它已经封装了非常丰富的数据结构,在编程时可以直接调用 。复杂的数据结构问题,微软的工程师已经帮大家考虑好了 。当然【思想】认为无法直接访问内存也是他的劣势,比如做CAN通讯,通讯经常要操作结构体,在这方面C#并不够灵活 。
C#在汽车行业中的应用
C#在汽车行业中的应用,有大一部分都是在电控系统开发工具的制作上 。例如,开发一款控制器的同时,还需要设计一个上位机工具,用于开发及生产的阶段调试、售后故障诊断、程序的烧写、数据标定等 。
C#在汽车行业中的应用

文章插图
图片来源网络
C#的应用,让汽车工程只需要考虑自己专业方面的逻辑,复杂的数据结构完全可以托管给.net编译器,这样做出来的程序相对稳定,开发速度也比较快 。
C#在汽车行业中的应用

文章插图
另外,如果觉得C#的官方控件太过单一,也可以使用一些比较适合汽车领域的第三方控件,例如NI、这类第三方控件,能够迅速的提高用户界面的品质,上图为NI国家仪器提供的第三方工业风格控件 。