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;
}

浙公网安备 33010602011771号