C#语法

1 cs语法结构

(1) 文件名和主方法所在类名可以不一致。
(2) namespace相当于java中的package,using相当于java中的import,using 命名空间.类名

 

2 c#基本语法

(1) 变量

float 变量赋值时,值后加f
//若小数后面不加f,系统默认为double类型,因此float类型变量不能接受。
decimal 赋值 加m,用法与 float 相似。
//没有float的精度损失问题。
//浮点型之间的转换只有float转换为double,decimal若要转换double只有强转。
//输出MessageBox.Show();
string 必须加""
null 不能赋值给基本数据类型,只能赋值给引用数据类型中。

(2) 注释

文档注释:///
调用方法时,显示注释内容。
//只能应用在类和方法上,不能用于变量。

(3) 表达式

x??y 如果x为null,则结果为y,否则为x。

(4) 循环

for(int i=0;i<100;i++){};

(5) 输入与输出

<1> 输入

Console.ReadLine();

<2> 输出

Console.WriteLine();
Message.Show();

(5) 数组

与java完全一致。
//唯一区别:初始化含有数据的数组时,则int[]内可以写长度:int[] arr=new int[]{数据1,数据2,数据3};

(6) 类和对象

<1> 属性书写方法

public int 属性 {get; set;}
//如果属性中具有get关键字,说明可以获取该属性的值。
//如果属性中具有set关键字,说明可以向该属性设置值。

<2> 构造方法

//方法名与类名相同,无返回值。

public 类名(数据类型 参数,数据类型 参数){
   this.属性=参数;
  this.属性=参数;
}

<3> 其他与java完全一致。

(7) 继承

public class Student:Person{

}


3 集合&字典

(1) 数组

<1> 优势

数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单。

<2> 劣势

在数组的两个数据间插入数据很麻烦。
在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。

(2) ArrayList

<1> 优势

ArrayList的大小是按照其中存储的数据来动态扩充与收缩的。
在声明ArrayList对象时并不需要指定它的长度。
ArrayList可以很方便的进行数据的添加,插入和移除。

<2> 劣势

ArrayList再存储数据时时使用object类型进行存储的。
ArrayList不是类型安全的,使用时很可能会出现类型不匹配的错误。
就算都有插入了同一类型的数据,但在使用的时候,我们也需要将它们转化为对应的原类型来处理。
ArrayList 的存储存在装箱和拆箱操作,导致其性能低下。

<3> 方法

ArrayList arrayList=new ArrayList();
arrayList.Add(内容);
//将数据新增到集合结尾处。
arrayList[索引]=内容;
//修改指定下标索引的数据,索引从0开始。
arrayList.RemoveAT(索引);
//移除指定下标索引处的数据。
arrayList.Remove(内容);
//移除指定内容的数据。
arrayList.Insert(索引,内容);
//再指定索引处插入数据。

(3) List集合

 <1> 优势

集合与数组比较类似,都用于存放一组值。
集合中提供了特定的方法能直接操作集合中的数据,并提供了不同的集合类来实现特定的功能。
简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护。
List泛型的处指通过允许指定泛型类或方法操作的特定类型,减少了类型强制转换的需要和运行时错误的可能性,泛型提供了类型安全,但没有增加开销。

<2> 方法

List集合与ArrayList由于都继承成了相同的接口,故使用与ArrayList相似。
在声明List集合时,需要同时为其声明List集合内数据的对象类型,即泛型,java中可以不加。

<3> 初始化

List<数据类型> List = new List<数据类型>
{
  值,值,值
};

(4) Dictionary字典

<1> 概述

在声明Dictionary字典时,需要为其声明Dictionary字典内的键与值的类型。
//例:Dictionary<int, string> dictionary = new Dictionary<int, string>();
键与值可以是任何类型,但是键必须在设置时是唯一的,而值可以不唯一。

<2> 方法

Dictionary<数据类型, 数据类型> dictionary = new Dictionary<数据类型, 数据类型>();
//三种赋值方式
//方式一:Add方法赋值
dictionary.Add(键, 值);
dictionary.Add(键, 值);
//方式二:索引器赋值
dictionary[键] = 值;
//该方法中的1,不是下标索引,而是键。
dictionary[键] = 值;
//方式三:对象初始化器
Dictionary<数据类型, 数据类型> dictionary = new Dictionary<数据类型, 数据类型>()
{
    {键,值},
    {键,值},
    {键,值}
};

(5) foreach

<1> 概述

foreach就是传说中的增强for循环或者称作foreach循环。
foreach对遍历字典或集合具备天然优势,效率高过for循环。

<2> foreach操作数组

int[] ints= {1,2,3,4,5,6};
    foreach (int item in ints){
    //每次循环,其item都是整型数组中的一个元素
}

<3> foreach操作集合

List<int> intList = new List<int>() { 1, 2,3, 4,5, 6 };
    foreach (int item in ints){
    //每次循环,其item都是List集合中的一个元素
}

<4> foreach操作字典

Dictionary<string, string> dictionary = new Dictionary<string, string>() {
  { "A","aa"},
  { "B","bb"},
  { "C","cc"},
};
foreach (KeyValuePair<string, string> item in dictionary){
    string key = item.Key;
    string value = item.Value;
}
posted @ 2023-06-27 17:09  10kcheung  阅读(175)  评论(0)    收藏  举报