C#上位机实战开发指南
第一章C#和Visual Stduio
1.1.NET时代
在.NET之前,尤其是20世纪90年代,Windows程序员几乎使用VB,C或者C++。部分C和C++开发者使用纯Win32Api,但是大多数人还是选择使用MFC。这些语言开发难度较大,底层代码复杂。21世纪初期越来越多的开发者迫切需要一个安全,集成度高,面向对象的开发框架。
2002年,微软如期发布了.NET框架的第一个版本,它具有如下几个特点:
●多平台可在任意计算机系统运行,包括服务器,台式机等。
●安全性提供更加安全的运行环境,即使有来源可疑的代码存在。
●行业标准使用标准通信协议,比如HTTP,SOAP,JSON等。
在2016年最新一期的编程语言排行榜中C#.NET位列第四,而且呈上升趋势。排行榜如图1-1所示。
图1-1
1.2C#的前世今生
C#是微软发布的一种面向对象,运行于.NET之上的高级语言。也是微软近几
年主推的开发语言,可以说是微软.NET框架的主角。只要具备一些C语言基础就可以非常迅速的入门C#开发,这也是我极力推荐使用C#开发上位机的一个重要原因。
1.3难以置信的Visual Studio2015
Visual Studio2015(以下简称VS2015)是微软推出的开发环境,C#也是基于
此开发。相比较之前的版本,VS2015具有更强大的调试功能,甚至集成了安卓,
IOS等跨平台开发环境。作为一个强大的集成开发环境,VS2015同时还能支持STM32单片机的编译。
具体教程请参看:www.openedv/thread-10273-1-1.html。
笔者认为VS2015是宇宙最强IDE,完虐我们常用的单片机开发环境如KEIL,
IAR等。更多使用技巧就留给读者自己去发现吧。
1.4VS2015的安装与使用
第二章C#语法基础
2.1C#编程概述
本章将为上位机开发打基础,当然具有C语言或者单片机开发经验的同学也可以跳过本章,直接进入第三章窗体程序的学习中。因为C#和C语言在语法上大致相同。本章只讲解一些与单片机C语言相差较大的部分,其余不再过多讲解。代码分析也全部放在第三章以后。若想深入学习C#,请参考专业入门书籍,推荐《C#图解教程》(第四版)。
2.2命名空间
在C#中,命名空间提供了一种组织相关类和其它类型的方式。我理解的命名空间就是一个集装箱,里面可以装下很多类和方法。其实我们也可以认为所谓的命名空间相当于C语言中的头文件,只不过include变为了using namespace。具体的书写规范见代码清单2-1。
代码清单2-1:命名空间书写规范
1.using System;//命名空间类似于头文件
2.using System.Collections.Generic;//using≈include;Systerm≈xxxx.h
3.using System.ComponentModel;
4.using System.Data;
5.using System.Drawing;
6.using System.Text;
7.using System.Windows.Forms;c语言入门书籍排行榜
8.
9.//用户自定义命名空间,相当于新定义一个头文件
10.//一般情况下一个上位机工程对应一个新的命名空间
11.namespace Demo
12.{
13.
14.public partial class Form1:Form
15.{
16.//构造函数,新建窗体工程时自动创建这段代码,可先忽略
17.public Form1()
18.{
19.InitializeComponent();
20.}
21.}
22.}
这段代码在新建工程之后由VS2015自动创建,第1到7行代码全都为系统自带的命名空间。第11行为开发人员自定义的命名空间,之后的每一个上位机项目都是一个自定义命名空间。
大概了解了C#命名空间的书写格式规范后,我们再简单回忆一下C语言中头文件的书写规范并比较二者的异同点,C头文件书写格式见代码清单2-2。
代码清单2-2:C头文件书写规范
1.#ifndef__USART_H
2.#define__USART_H
3.
4.
5.#include"stm32f10x.h"
6.#include"stdio.h"
7.#include"string.h"
8.
9.
10.#define TxBuffSize256
11.
12.
13.#define Debug_ON1
14.
15.
16.#define DebugPutInfo()do{if(Debug_ON)printf(fmt,##arg);}while(0)
17.
18.
19.void USART_Config(void);
20.void USART1_SendByte(uint8_t DataToSend);
21.void USART1_SendString(const char*StringToSend);
22.void USART1_SendBuff(uint8_t*DataToSend,uint8_t DataNum);
23.
24.
25.#endif
通过代码清单2-2我们很容易发现,C#的命名空间和C的头文件遵循一样的规则,即要想使用某方法某函数则必须要包含方法所在的命名空间或者头文件。这是相同点。不同点则表现在C语言在声明了头文件和函数接口后必须要在对应的C文件中编写函数体后才可使用。C#则将省去了函数声明,直接即可编写对应的函数体。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论