随笔分类 - C# / C#语言基础
摘要:c#预处理指令 预处理器指令告诉C#编译器要编译哪些代码,并指出如何处理代码中的特定错误或者警告。C#预处理器指令还可以告诉C#编译器有关代码组织的信息。 每个预处理器指令都以#开头,而且必须一行写完。换行符标志着预处理器指令的结束。常见的预处理器指令如下所示: if指令 #if CSHARP2PL
阅读全文
摘要:C#中checked和unchecked关键字 checked 在checked代码段中,如果里面执行的是比较危险的代码,则会引发相关异常或者错误,例如: static void Main(string[] args) { checked { int n = int.MaxValue; Consol
阅读全文
摘要:枚举器和迭代器 使用foreach语句迭代遍历 int[] arr = { 9, 12, 43, 10, 6, 5 }; foreach(int e in arr) Console.WriteLine(e); 数组之所以这么可以做,原因是数组可以按需提供一个叫做枚举器的对象,枚举器可以依次返回请求数
阅读全文
摘要:C#中的泛型 泛型提供了一种更优雅的方式,可以让多个类型共享这一组代码,泛型允许声明类型参数化,用不同的类型进行实例化,在创建类的实例时指明真实的类型。 在C#中,提供了5种泛型:类、结构、接口、委托、方法,前面4种是类型,方法是成员 泛型类 如何声明一个泛型类: 在某些类型上使用占位符声明一个类。
阅读全文
摘要:接口 接口是指一组函数成员而不实现它们的引用类型。只有类是结构体实现接口。例如: namespace CSharpProject1; interface IInfo { string GetName(); int GetAge(); } class CA : IInfo { public strin
阅读全文
摘要:C#中的委托 委托可以认为是持有一个或者多个方法的对象,委托可以认为是一个类型安全的、面向对象的C/C++函数指针。如下例程序: namespace CSharpProject1; delegate void MyDelegate(int value); // 声明委托类型(没有返回值的类型,使用d
阅读全文
摘要:C#中的数组 数组的基本定义 数组实际上是由一个变量名表示同一组类型的额数据元素。关于数组,这里有一些重要的定义: 元素:数组的独立数据项称之为元素,数组中的所有元素必须是相同的类型; 维度/秩:数组的维度数; 维度长度:数组方向的位置个数; 数组长度:数组的所有维度中的元素总数称之为数组的长度;
阅读全文
摘要:C#的枚举 枚举是由程序员定义的,与类或结构体一样。 枚举通常是值类型,因此可以直接存出它们的数据; 枚举只有一种类型的成员:命名的整数值常量。在默认情况下,编译器对第一个成员赋值0(自己也可以手动设定),对每一个后续成员的赋值依次递增。 namespace CSharpProject1; clas
阅读全文
摘要:关于C#中类的认识 静态字段 static 静态字段被类的所有实例共享,所有实例都访问内存同一内存位置,因此,如果该内存位置的值一旦被某个实例改变了,这种改变对所有的实例都可见。我们可以使用static关键字来将字段声明为静态,如: namespace Hello { internal class
阅读全文
摘要:C#语言中常见的类型 预定义简单类型 名称 含义 默认值 sbyte 8位有符号整数 0 byte 8位无符号整数 0 short 16位有符号整数 0 ushort 16位无符号整数 0 int 32位有符号整数 0 uint 32位无符号整数 0 long 64位有符号整数 0 ulong 64
阅读全文
摘要:C#字符串输出 namespace Hello { internal class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); string name = "Hello, World!"
阅读全文