随机数
数组定义
int[] a= new int[10]; //类型名后加一对方括号
int AL=6;
int a[]=new int[AL]; //动态指定
int[] x={1,2,3,4}; //根据列举的元素个数决定长度
int[] x= new int[]{1,2,3,4};
int[,] a= new int [3,4];
int[,] b={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int[][] b=new int[3][]; //各行的个数可以不同
数组有秩(维数,Rank)与长度(Length)。
Array提供Sort和Reverse这样的静态方法,这些方法用快速排序算法将一维数组中的元素按照升序或降序排列。
方法
参数传递
字符串
(1)规则字符串
[格式]:string 字符串变量名[=字符串初值];
(2)逐字字符串
逐字字符串由@字符后跟双引号括起来的零个或多个字符组成。
[格式]:string 字符串变量名[=@字符串初值];
@字符放到字符串之前表示这是一个逐字字符串,字符串中的转义字符(\)将会被当作普通反斜杠对待。
string 是 System.String 类的别名;String 是最终类(sealed)。
String.Join 方法 (String, String[])
串联字符串数组的所有元素,其中在每个元素之间使用指定的分隔符。
其他数据类型
1.结构类型,struct
2.枚举类型,enum
class Program
{
enum Season { Spring = 10, Summer, Autumn = 20, Winter };
static void Main(string[] args)
{
Console.WriteLine((int) Season.Summer); //输出11
Console.WriteLine((Season)21); //输出Winter
}
}
装箱与拆箱(boxing and unboxing)
值类型与引用类型的互换
int i=123;
object o = i; //Boxing
int k = (int)o; //Unboxing
foreach语句
与for语句类似,都是重复执行指定的一组语句。但foreach语句专门用于遍历数组或对象集合中的每个元素。
能用foreach遍历访问的对象:*需要实现IEnumerable接口或声明GetEnumerator方法的类型。
泛型-优点
特征:内部算法和数据操作保持不变,而实际数据类型可以在使用时指定。
优点:
- 支持任何类型(包括自定义类型);
- 减少代码冗余;
- 类型安全;
- 性能提高(值类型提高200%,引用类型提高100%);
可空类型
可空类型是System.Nullable<T>结构类型的实例。可空类型可以表示其基础值类型正常范围内的值再加上一个null值。
分部类
反射(Reflection)
- 反射的用途是在程序或装配件中查找有关类型的信息,或者从装配件中读取元数据。
- 反射包含的大多数类都在System.Reflection命名空间中。
常用的类:- Type类:查找有关类型的相关信息。
获取指向给定类型的Type对象有2种常用方式:
(1)Type t =typeof(double);
(2)Type t = Type.GetType("System.Double")。 - Assembly类:在System.Reflection命名空间中定
义,它允许程序员访问给定装配件的元数据。
- Type类:查找有关类型的相关信息。
Lambda表达式
Lambda表达式是一个可用于创建委托或表达式树类型的匿名函数。
语法为
示例
x=>x*x //输入参数为x,返回x*x
(x,y)=> x == y //输入参数为x和y,返回布尔值
()=SomeMethod() //无参数,返回函数值