目录
一、C#基本语法
1、注释
2、变量
3、表达式
4、数组
5、函数
6、面向对象OOP
7、集合、字典
一、C#基本语法
C#是微软公司发布的一种面向对象的、运行于.NET Framework 和 .NET Core(完全开源、跨平台)之上的高级程序设计语言,由C和C++衍生出的面向对象的变成语言。
//引用命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//项目的命名空间
namespace WindowsFormsApp1
{
//类
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
1、注释
单行注释://
多行注释:
文档注释:///
2、变量

3、表达式
x || y 或
4、数组
数组是一组想同类型的数据,数组中的数据需要通过数字索引来访问。
数组的声明:
- 数组的声明需要使用new关键字
- 在声明数组时,可以使用()来初始化数组中的元素。
- 如果在数组声明之初没有使用大括号来初始化数组中的元素,则需要指定数组的大小。
- 在声明初始化有元素的数组时,也可以指定数组大小。
//声明没有元素的数组
int[] arr = new int[6];
//声明初始化有元素的数组
int[] arr1 = new int[] { 1, 2, 3 };
//声明初始化有元素数组并指定数组大小
int[] arr2 = new int[3] { 1, 2, 3 };
通过索引获取数组中的元素:
- 给数组指定长度时,数组准备存放多少元素,长度就设置为多少。
- 用索引获取数组内的元素时,索引从0开始获取。
- 所以数组中最大的索引数字,比指定数组长度小1.
5、函数
参数修饰符:
6、面向对象OOP
class Class1
{
public int id { get; set; }
public String name { get; set; }
public void fun()
{
MessageBox.Show("id="+id+"; name="+name);
}
}
//调用
//Class1 cla = new Class1();
Class1 cla = new Class1(){id = 123,name="张大"};
//cla.id = 123;
//cla.name = "张大";
cla.fun();
静态方法:
- 静态和属性方法通过static关键字修饰
- 静态和属性可以通过类型直接获取,非静态则必须通过实例化的对象获取。
静态类:
- 静态类通过static关键字修饰
- 一般情况下类型不需要使用静态修饰,只有当类型中存在扩展方法时需要使用静态类。
7、集合、字典
集合与数组相似,用于存放一组值。
数组的优缺点:
- 优点:
- 数组在内存中是连续存储的,所以它的索引速度很快,而且赋值与修改元素也很简单。
- 缺点
- 在数组的两个数据中间插入数据很麻烦
- 在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组的长度过短,会造成数据溢出的错误。
ArrayList 的使用:
- ArrayList是.NET Framework提供的用于数据存储和检索的专用类
- 它是命名空间System.Collections下的一部分。
- 优点:
- ArrayList的大小是按照其中存储的数据来动态扩充与收缩的
- 在声明ArrayList对象时不需要指定它的长度。
- ArrayList可以很方便的进行数据的添加、插入和移除。
- 缺点:
- ArrayList在存储数据时使用object类型进行存储的
- ArrayList不是类型安全的,使用时很可能出现类型不匹配的错误
- 就算都插入同一类型的数据,但在使用的时候,也需要将他们转化为对应的原类型来处理。
- ArrayList的存储存在装箱和拆箱操作,导致其性能低下。
- 泛型:限制只能存储单一类型数据的手段
ArrayList array = new ArrayList();
//将数据添加到结尾处
array.Add("abc");
//修改指定索引处的数据
array[0] = 123;
//移除指定索引处的数据
array.RemoveAt(0);
//移除内容为123的数据
array.Remove(123);
//在指定索引处插入数据
array.Insert(0,"插入数据");
List集合:
- List集合与ArrayList由于都继承了相同的接口,故使用与ArrayList相似。
- 在声明List集合时,需要同时为其声明List集合内数据的对象类型。
- List<int> li = new List<int>()
class Person
{
public string name { get; set; }
public int age { get; set; }
public int height { get; set; }
}
List<Person> list = new List<Person>();
Person person = new Person { name = "熊大", age = 20, height = 180 };
list.Add(person);
list.Add(new Person { name = "熊二", age = 18, height = 180 }) ;
Dictionary 字典:
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(1, "a");
dic.Add(2, "b");
//索引器赋值
dic[1] = "c";
//初始化赋值
Dictionary<int, string> dic2 = new Dictionary<int, string> {
{ 1, "a" },
{ 2, "b" },
{ 3, "c" }
};
string value = dic2[1];
//删除键值为1的键值对
dic2.Remove(1);
foreach的使用:
- foreach操作数组
int[] arrs = { 1, 2, 3, 4, 5, 6 };
foreach(int arr in arrs)
{
int s = arr;
}
- foreach操作集合
List<int> list = new List<int>() {1,2,3,4,5 };
foreach (int l in list) {
int a = l;
}
- foreach操作字典
Dictionary<string,string> dict = new Dictionary<string, string>()
{
{"a","A" },
{"b","B" },
{"c","C" },
};
foreach(KeyValuePair<string,string> d in dict)
{
string key = d.Key;
string value = d.Value;
}
- foreach操作对象集合
class Person
{
public string name { get; set; }
public int age { get; set; }
public int height { get; set; }
}
List<Person> personList = new List<Person>();
personList.Add(new Person { name = "A", age = 1, height = 10 });
personList.Add(new Person { name = "B", age = 2, height = 20 });
personList.Add(new Person { name = "C", age = 3, height = 30 });
foreach(Person p in personList)
{
string name = p.name;
int age = p.age;
int height = p.height;
}