当前位置: 首页 > news >正文

C#快速入门基础

本篇文章从最基础的C#编程开始学习,经过非常优秀的面向对象编程思想和方法的学习,为C#编程打下基础。

第 01 章 C#开发环境之VS使用和.NET平台基础

1.1 Visual Studio 开发环境

1.1.1 硬件环境

 i5CPUi5CPU(建议 4核 4线程或以上 ,新机器 6核以上最好 )+ 8G 内存 (有条件的 16G16G) + 至少 200 G系统 固态硬盘,电脑时间不要超过 4年最好。如果是笔记本 CPU 至少 i7 ,否则运行会慢。

1.1.2 操作系统

建议 win10 ,如果是 win7 需要 64 位。

1.1.3 编程语言软件

首先要安装的就是 VS2019 ,如果有新的版本,请按照新阁教育官方的建安装,不要随便自己装 ,如果 已经安装过 其他 低版本,可以保留同时安装 2019 即可,不要轻易除其他版本,否则会面临再次安装不上的情况。

1.2 Debug 和 Release 的区别

1.2.1 概念上的不同

Debug 的意思是调试, 也就是我们尝试着运行一下程序。在运行中,可以通过断点观察程序的执行过程。 Release 的意思发布,也就是我们的程序开发和调试都成功了, 这个时候 可以选择发布程序。正式 作为生产环境的应用软件。

1.2.2 断点与调试

Debug 在任何情况下,都可以打断点观察变量。 可以打断点后 让程序一行一行的执行。从而观察程序逻辑和变量的值。而 ReleaRelease 在很多情况下 无法直接断点,并且观察数据可能存在不正确的情况。

1.2.3 生成与优化

Debug 所生成的文件,包含很多调试信息,生成的文件比较大。不做任何的优化代码任务 ,仅供 项目开发过程中使用 。Release 不包含调试信息,生成的文件较小。有时候需要做性能优化,以便提升运行速度。项目结束最后使用 Release 发布。

第 02 章 命名空间和类、数据类型、变量和代码规范

2.1 命名空间的重要作用

命名空间 ,又称为 “名称空间”。命名空间,分为系统的命名空间和自定义命名空间。命名空间的名字默认和项目的名字是一样的。

2.1.1 命名空间使用规范和注意问题

必须把命名空间的名字放到关键字namespace 后面,并且命名空间不能用数字和特殊字符开始,建议大家都用字母开头。 当我们引入一个命名空间的时候使用 using 关键字,后面跟上命名空间 的名称。

需要注意的问题:

第一 ,命名空间没有包含关系的说法。

第二、项目设计中,命名空间通常会统一规范,通常是自己的项目团队给出标准 。

第三、命名空间不建议随便修改。
第四、命名空间不正确的使用,会导致类无法访问。

第五、写的类一定要写在命名空间里面。

2.2 类的组成和使用分析

类是程序的基本单元。

2.2.1 类的内容组成

软件所封装的这些功能无非就是数据处理和业务逻辑处理

在这里,我们再把命名空间、类的关系,通过下面的图做一个整理:

通过这个图也可以清楚的看到,一个类的内部通常包括字段、属性、构造方法、实例方法等

针对类的访问修饰符我们常用的是 public和 internal,当我们使用 public修饰的时候,表示这个类在任何地方都可以被使用。如果我们对类没有做任何的修饰,默认就是interanl,表示内部的。

说到访问修饰符,必须要强调一下,在类的内部所有的成员都有修饰符,比如字段,我们一般使用 private表示只能在类的内部使用; 属性一般都是 public;方法可以 public也可以 private。

2.3 C#的数据类型和变量

2.3.1 C# 常用数据类型概述

在C#中常用的数据类型可以分为两大类,分别 是“数值型 ”和“引用类型 “。其中 值类型包括整型、浮点型、字符型、布尔型、枚举 、日期 型等;引用类型包括类、接口、数组、委托、字符串等。

2.3.2 C# 中的值类型

整型 ,就是存储整数的类型,按照存储值的范围不同, C# 语言将整型分成了 byte 类型、 short类型、 int 类型、 long 类型等,并分别定义了有符号数和无符号数。有符号数可以表示负数,无符号数仅能表示正数。 常用的整数类型及其表示范围如下表所示:

类型取值范围
byte无符号数,占用1个字节,0~2^3-1
short有符号数,占用 2个字节, -2^{15}2^{15} -1
int有符号数,占用 4个字节, ,-2^{31}2^{31}-1
long有符号数,占用 8个字节, ,-2^{63}2^{63}-1
sbyte有符号数,占用 1个字节, ,-2^{7}2^{7}-1
ushort无符号数,占用 2个字节, ,0〜2^{16} -1
uint无符号数,占用 4个字节, ,0〜2^{32} -1
ulong无符号数,占用 8个字节, ,0〜2^{64} -1

浮点型 ,是指小数类型,浮点型在 C# 语言中共有两种, 分别是单精度浮点型和双精度浮点型。具体使用如下表所示。

类型取值范围
float单精度浮点型,占用 4个字节,最多保留 7位小数
double双精度浮点型,占用8个字节,最多保留 16 位小数

字符型, 只能存放一个字符, 占用两个字节,能存放一个汉字。字符型用 char 关键字表示,存放到 char 类型的字符需要使用单引号括起来,例如 'a' 、'汉' 等。
字符串类型, 能存放多个字符,它是一个引用类型,在字符串类型中存放的字符数可以认为是没有限制的,因为其使用的内存大小不是固定的而是可变的。使用 string 关键字来存放字符串类型的数据。字符串类型的数据必须使用双引号括起来,例如"abc" 、"123" 等。

在 C# 语言中还有一些特殊的字符串,代表了不同的特殊作用。由于在声明字符串类型的数据时需要用双引号将其括起来,那么双引号就成了特殊字符,不能直接输出, 这就需要转义字符,因此“转 义字符 ”的作用就是输出这个有特殊含义的字符。转义字符非常简单,常用的转义字符如下所示。

转移等价字符
\‘单引号
\"双引号
\\反斜杠
\r回车
\n换行
\t水平制表符

布尔类型 ,在 C# 中布尔类型使用 bool 来声明,它只有两个值,即 true 和 false 。当某个值只有两种状态时可以将其声明为布尔类型。布尔类型的值被经常用到条件判断的语句中
日期类型, 在 C# 中,使用 datetime 来表示日期类型。

2.3.3 C#中变量的基本使用

变量表示一个数据存储空间, 也就是内存地址的别名 。

变量定义的三个要素变量类型,用来规定变量的数据类型。变量名称,起名要有意义,好记忆。变量的值,变量对应的具体内存数据。

2.3.4 C#中变量的命名规范

C#语言严格区分大小写! 比如我们写的 Name和 name是两个不同的变量,这点要特别注意。这里把常用的命名 规范 给大家总结如下:
第一、类、属性、方法命名使用 Pascal命名法,也就是首字母大写。比如 Person类、SubjectScore类;属性 Name、Age、DateOfBirth;方法 Add、GetResult、QueryScore等。
第二、 变量命名规范 。变量组成由英文字母( A~Z,a~z)、数字 0~9)、下划线 (_),除此之外不能含有其他字符。 变量开头只能以字母或下划线开头比如 _age,禁止使用 C#关键字( 如int、this、 class...),特别注意“$”符号在 C#中也不能使用
第三、命名要有意义。 尽量用对应的英文命名,比如年龄使用 age,除循环变量外,尽量不用单个字符 命名变量 。方法内的局部变量使用 Camel(意思是骆驼 命名法,首字母小写。比如 stuName、stuAge。

2.4 程序注释和MSDN帮助文档

2.4.1 程序注释的方法

正确使用注释 ,对代码做出说明, 可以便别人阅读和后续维护使用。 作为开发者能否规范写出注释也是非常重要的。不过我们要清楚注释是不参与编译的, 也就是对程序本身没有任何响。
注释类型分为单行注释和文档注释。单行注释是对单独一条语句做的注释,使用两个//表示文档注释一般都是在方法、类等的前面做的注释,内容会更多,注释的时候需要使用三个斜杠 ///同按回车键,自动生成注释结构。

关于注释的建议:关键性的语句要添加注释 ;类名前应该使用文档注释,说明类的简单功能和使用方法。复杂方法前面应使用文档注释,说明方法的功能、参数的含义、返回值等。

2.4.2 MSDN 的使用

我们在学习中经常会遇到不懂的内容,尤其是阅读别人代码的时候,遇到不懂的语句,如果是系统提供的方法或者类,我们的第一手最好的帮助文档就是 MSDN,这个是微软官方给的最全的文档, 虽然有的地方解释可能比较苦涩,毕竟是翻译的,但它是最全面的。所以,大家必须学会使用。方法就是,我们想看一个类或方法的时候,用鼠标点击一下,然后按 F1功能键就行了,只要你的电脑联网,直接就把在线文档打开了。

相关文章:

  • 谷歌浏览器扩展 Chandlery for Fallen London 1.4 下载方式
  • 功能测试--APP专项测试
  • Rust 的 inline 内联编译策略
  • 比特币普通地址、隔离见证(兼容)、隔离见证(原生)、Taproot 地址傻傻分不清楚
  • java中使用rabbitmq
  • 【Docker】PostgreSQL 容器化部署
  • Elasticsearch:机器学习与人工智能 - 理解差异
  • ctf_show笔记篇(web入门---代码审计)
  • 【Linux基础(三)】信号
  • 爬虫练习:获取某网站的房价信息
  • Gitea相关漏洞
  • 【深入理解设计模式】命令设计模式
  • Linux应用程序对异步通知的处理
  • 算法时空复杂度分析:大O表示法
  • print()大揭秘:如何用Python打印出多样字符
  • 【RocksDB】TransactionDB源码分析
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 345-反转字符串中的元音字母
  • Android Volley源码解析
  • Apache的80端口被占用以及访问时报错403
  • Babel配置的不完全指南
  • Consul Config 使用Git做版本控制的实现
  • nginx 配置多 域名 + 多 https
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • vue-router 实现分析
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • windows下使用nginx调试简介
  • 产品三维模型在线预览
  • 多线程事务回滚
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 关于for循环的简单归纳
  • 和 || 运算
  • 理解在java “”i=i++;”所发生的事情
  • 提醒我喝水chrome插件开发指南
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 新书推荐|Windows黑客编程技术详解
  • 与 ConTeXt MkIV 官方文档的接驳
  • zabbix3.2监控linux磁盘IO
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 数论-逆元
  • (C语言)fread与fwrite详解
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (待修改)PyG安装步骤
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (一)80c52学习之旅-起始篇
  • (原)Matlab的svmtrain和svmclassify
  • (转)h264中avc和flv数据的解析
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 微服务 服务保护 自动重试 Polly
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题