C#语言特点及基础
面向对象,运行于.NET Framework 和 .NET Core(完全开源,跨平台)
C#是安全的,稳定的,简单的,优雅的
C#语法基础
CS文件结构
using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; // 引用命名空间 // 项目命名空间,大多数时候也是项目本身的名称 namespace WebApplication{ // 类名称 public class Program{ // 方法或者函数 public static void Main(string[] args){ } } }
类包含了程序使用的数据和方法声明,类一般包含了多个方法,方法定义了类的行为。
Main方法是程序的入口
C#基本语法
- C# 区分大小写
- 所有的语句和表达式必须以分号结尾
- 与Java不同的是,文件名可以不同于类的名称
C#是一种面向对象语言,在面向对象的程序设计方法中,程序由各种对象组成,相同种类的对象通常具有相同的类型。
关键字
关键字,是对编译器有特殊意义的预定义保留标识符,不能在程序中用作标识符
注释
注销和解释
/* 多行注释 */ // 单行注释 // 文档注释 // 在声明和方法和类上使用文档注释 /// <summary> /// /// </summary>
变量
变量是一个供程序存储的数据盒子,在C#中,每一个变量都有一个特定的类型,不同类型的变量其内存大小也不尽相同。
类型 | 说明 |
整数类型 | byte,short,int,long |
浮点型 | float 和 double |
十进制类型 | decimal |
布尔类型 | bool |
字符类型 | string,char |
空类型 | null |
byte: 0-255
默认小数是double类型, 加f则是float类型。
decimal类型 和 小数类型差不多, 后缀是m, decimal不是基础类型, 精度比float类型高,常常用于财务系统。
decimal 和 double类型不能相互转换。
bool类型: true 和 false
string str = "hello,world"; char a = 'a'; MessageBox.Show(str);
null 类型,不可以声明变量,本身就是一个值,表示空
C#进阶语法
表达式
- 表达式由操作数 和 运算符 构成,运算符包含 +, - , * , /等
- 表达式包含多个运算符时,运算符的优先级控制各运算符的计算顺序。
- 大多数运算符都可以重载(overload), 运算符允许指定用户定义的运算符实现来执行运算。
运算符
++x x++ x-- --x + - * / % << >> > < <= >= is as == != & | && || ! x??y 如果x为null, 则计算结果为y,否则计算结果为x x?y:z (T x) => y 匿名函数 lambda表达式
整数相除是整除
字符串使用+, 是字符串拼接
分支语句
if(){ }else{ } /*****************/ if(){ }else if() { }else{ }
// 可以使用字符串 switch(i){ case 1: break; case 2: break; default: break; }
循环语句
for(int i = 0;i<10;i++){ }
int i =0; while(i<10){ i++; }
int i = 0; do{ i++; }while(i<10);
int[] arr={10,6,5,9}; for(int i:arr){ System.out.println(i); }
break; continue;
数组
- 一组相同类型的数据, 数组中元素的类型一致
- 数组中的数据需要通过索引来访问
声明
- 数组的声明需要使用new 关键字
- 在声明数组时,可以使用{}来初始化数组中的元素
- 如果在数组声明之初没有使用大括号来初始化数组中的元素,则需要指定数组的大小
- 在声明初始化有元素的数组时,也可以指定数组的大小。
int[] ints = new int[8]; int[] ints = new int[]{1,3,2,4}; string[] strings = new int[5]{"H","E","L","L","O"}; // 获取数组长度 int len = strings.Length;
// 声明时更简便的方式 string[] strs = {"111","222","444"};
通过索引获取元素
- 给数组指定长度时,数组准备存放多少元素,长度就设置为多少
- 用索引获取数组内的元素时,索引从0开始
- 最大索引为 长度-1
int[] ints = new int[]{1,2,3}; int i1 = ints[0];
强制类型转换
- (int) 表示使用显示强制转换,C#默认整形是int32
- Int.Parse() 只支持将string类型转换成int
- Convent.ToInt32(double value), 不完全遵循四舍五入,如果value为两个整数中间的数字,则返回二者间的偶数
Convert.ToInt32(4.5); // 4
- Convert.ToInt32() 对于null返回0,不会产生异常, Int.Parse会产生异常