-->

C# -- 《零基础学C#(全彩版)》Day1 -- 第1篇 基础知识

第1篇 基础知识

第一章 IDE--Visual Studio

在之前程序学习接触了Jetbrains的产品,其功能的强大、界面流畅度及其他编辑也是用该产品习惯等原因,所以主要使用 Rider进行C#的开发IDE。跳过Visual Studio的学习部分。

有关名词解释:
SDK : Software Development Kit的缩写,中文意思是“软件开发工具包”,辅助开发某一类软件的相关文档、实例和工具的集合都可以叫做SDK。、
编译: 把高级计算机语言编程计算机可以识别的二进制语言的过程。

C#简介:

C# 是一种面对对象的编程语言,主要用于开发运行在.Net平台上的应用程序,C#的语言体系都是构建在.NET框架上。C#是微软公司在2000年6月发布的一种编程语言,主要由Anders Hejlsberg(Delphi和Turbo Pascal语言的设计者)主持开发,主要微软公司为配合.NET战略推出的一种全新的编程语言。

C#语言特点:

1)语法简洁,不允许直接操作内存,去掉了指正操作。
2)彻底的面对对象涉及,C#具有面对对象语言所应有的一切特性:封装、继承和多肽。
3)与Web紧密结合,C#支持绝大多数的Web标准,例如HTML、XML等。
4)强大的安全机制,可以消除软件开发中常见的错误,.NET提供的垃圾回收器还能帮助开发者更有效的管理内存资源。
5)兼容性好,因为C#遵循.NET的公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容。
6)完善的错误、异常处理机制,C#提供了完善的错误和异常处理机制,使程序在交付应用时能更加健壮。

认识 .NET Framework

.NET Framework 又称.NET框架,是完全面向对象的软件开发和运行平台,它有两个主要组件,分别是:公共语言运行时 (Common Languge Runtime, 简称 CLR)和类库,如下图:

  • 公共语言运行时:负责管理和执行由.NET编译器编译产生的中间语言代码。CLR包含两部分内容,分别为CLS和CTS,CLS表示公共语言规范,是许多应用程序所需的一套基本语言功能,而CTS表示通用类型系统,定义了可以在中间语言中使用的预定义数据类型,所有面向.NET Framework的语言最终都可以生成基于这些类型的编译代码。

C#与 .NET Framework

.NET Framework 是一个开发平台,而C#是专门为与 .NET Framework一起使用而设计的一种编程语言,在 .NET Framework上开发时,可以使用多种开发语言,如C#、VB.NET、F等。

开发环境安装

此处省略

第二章 踏上C#开发的征程

编写第一个C#程序

程序中各个组成部分:

各个组成部分解释

1.命名空间

语法:

namespace 命名空间名称;

eg:

namespace Hello_World;

说明:一般不用自定义命名空间,在创建项目或者创建类文件时,开发环境会自动生成一个空间。

如果要调用某个命名空间里面的类,需要使用关键字 using 引用命名空间;

using Hello_World;

如果不想使用using指令引用命名空间,可以直接使用命名空间调用其中的类。

2.类

C#程序的主要功能代码都是在类中实现的,类是一种数据结构,可以封装数据成员、方法成员和其他的类。类是C#语言的核心和基本构成模块。C#支持自定义类,使用C#编程就是编写自己的类来描述实际需要解决的问题。

使用类之前都必须先进行声明,一个类一旦被声明,就可以作为一种新的类型来使用,在C#中通过class关键字来声明类:

class [类名]
{
    [类中的代码]
}

3.关键字与标识符

C#常用关键字

标识符:
命名规则:
a、由字母、数字、下划线组成
b、第一个字符不能是下划线
c、不能是C#中的保留关键字
注意:严格区分大小写

4.Main方法

每一个C#程序中都必须包含一个Main方法,它是类体中的主方法,也叫入口方法。Main方法一般是创建项目时自动生成的,不用开发人员手动编写或修改,如需要修改,需要注意下面三个方面:
a、Main方法在类或结构内声明,必须是静态(static)的,而且不应该是公开(public)的;
b、Main的返回类型有两种:void或int;
c、Main方法可以包含命令行参数 string[] args,也可以不包括。

4种声明方式:

static void Main( string[] args) {  }
static void Main( ) {  }
static int Main( string[] args) {  }
static int Main( ) {}

5. C#语句

语句是构造C#程序的基本单位,语句以分号终止。

Console类中与输入输出相关的方法:

方法 说明 Tips
Read 从标准流读入下一个字符 返回值为int类型 只能记录int类型的数据
ReadLine 从标准流读入下一行字符 返回值为string类型
Write 指定的值写入标准输出流 输出后不换行
WriteLine 将当前行终止符写入标准输出流 输出后换行

6. 注释

//  单行注释

/*
多行注释
*/

程序编写规范

1.代码编写规则

  • 尽量使用接口,然后使用类实现接口,以提高程序的灵活性
  • 不要使用GOTO系列语句,除非是用在跳出深层循环时
  • 避免编写超过5个参数的方法,如果要传递多个参数,则使用结构
  • 避免书写代码量过大的try...catch 语句块
  • 避免在同一个文件中编写多个类
  • 生成和构建一个长的字符串时,一定要使用StringBuilder 类型,不用string类型
  • switch语句一定要有default语句来处理意外情况

2.命名规范

两种命名方法:
Pascal命名法 大坨峰 --- 命名方法和类型
Camel命名法 小驼峰 -- 命名变量和方法的参数

命名注意:
有意义的名字定义命名空间
接口的名称前加前缀“I” Iconvertible
类名最好能体现类的功能或操作 Operation
方法的命名,一般为动宾短语 GetFile
定义成员变量最好加下划线前缀 _connectSting

常见的3种项目类型

控制台应用程序、Windows窗体应用程序、ASP.NET网站应用程序

第三章 C#语法

1.什么是变量

2.简单数据类型

C#中的数据类型根据定义可以分为两种:一种是值类型,另一种是引用类型。

2.1 整数类型

在C#中,整数类型有3种表现形式,十进制、八进制、十六进制

2.2 浮点类型

2.3 decimal类型

2.4 bool类型

2.5 字符类型

3 变量的初始化

3.2 变量的作用域

成员变量
局部变量

4.常量

5.运算符

算数运算符
自增自减运算符
赋值运算符
关系运算符
逻辑运算符
位运算符
移位运算符
条件运算符

6.数据类型转换

隐式转换

显示类型转换

使用Convert类进行转换

第四章

4.1 决策分支

在C#中有两种选择的结构语句,分别是if语句和switch语句

4.2 if语句

if...
if..else...
if...else if..else...

4.3 switch语句

switch(判断参数)
{
case 常量值1:
    语句块1
    break;
case 常量值2:
    语句块2
    break;
...
case 常量值3:
    语句3;
    break;
default:
    语句块n+1;
    break;
}

注意:
1)case后的各种常量不可以相同,否则会出现错误
2)case后面的语句块可以包含多条语句,不必使用大括号{}括起来
3)case语句和default语句的顺序可以改变,但不会影响程序的执行结果
4)一个switch语句中只能有一个default语句,而且default语句可以省略

4.4 while和do...while循环

while循环
do...while...循环

4.5 for循环

for(表达式1;表达式2;表达式3)
{
    语句组
}

省略"表达式1"的情况,在for循环之前为循环条件赋值

for(;iNum <= 100;iNum++)
{
    sum += iNum;
}

省略"表达式2"的情况,配合break语句等来结束循环

for(iNum = 1;;iNum++)
{
    iSum += iNum;
}

// 相当于永真

省略"表达式3"的情况

for(iNum = 1;iNum <= 100;)
{
    iSum += iNum;
    iNum ++;
}

for循环中逗号的应用
在"表达式1"处为变量iNum和iSum同时赋初值。

for(iSum = 0, iNum = 1; iNum <= 100; iNum++)
{
    iSum += iNum;
}

4.6 循环的嵌套

三种循环之间都可以相互嵌套。

4.7 跳转语句

break语句--跳出循环体
continue语句--结束本次循环

第5章 数组--批量数据处理

5.1 数组概述

数组是具有相同数据类型的一组数据的集合。

一个数组的定义需要包含一下几个要素:

  • 元素类型
  • 数组的维数
  • 每个维数的上下限

5.2 一维数组

一维数组的创建
a、先声明,再用new关键字进行内存分配

// 声明一维数组
数组元素类型[]  数组名字;

数组声明后,还不能访问它的任何元素,要真正使用分配内存空间,还要为它分配内存空间。在为数组分配内存空间时,必须指明数组的长度。

// 数组分配内存空间,必须指定数组元素的类型和数组元素的个数
数组名字 = new 数组元素类型[数组元素的个数];

说明:使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0.

b、声明的同时为数组分配内存

数组元素类型[] 数组名 = new数组元素类型[数组元素的个数];

5.3 二维数组

a、二维数组的创建
二维数组常用于表示二维表,第一个下标代表元素所在的行,第二个下表代表元素所在的列
声明二维数组的语法如下:

type[,]  arrayName;
type[][]  arrayName;

eg:定义一个二维数组,分别为每一维分配内存空间

int[]][] = new int[2][];
a[0] = new int[2];
a[1] = new int[3];
// 由于每一维分配的内存空间不同,因此,a相当于一个不规则二维数组。

b、二维数组的初始化
二维数组的初始化只要分为三种:

  • 为单个二维数组元素赋值
  • 为每一维数组元素赋值
  • 同时为整个二维数组赋值

为单个二维数组元素赋值:

posted @ 2024-01-06 14:56  Zain·Wilson  阅读(72)  评论(0编辑  收藏  举报