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会产生异常