object:是所有数据类型的祖宗,级别最高
------
is as 类型转换运算符;
(类型)对象,强制转换,如果转换不成功,则抛出异常;
is 判断某个对象或变量是否是某个类型 返回bool类型;
ArrayList arr = new ArrayList();
Class1 a = new Class1();
a.name = "段誉";
arr.Add(a);
foreach (object x in arr)
{
if (x is Class1)
{
Class1 o = (Class1)x;
Console.WriteLine(o.name);
}
}
--
as 类型转换,如果某个对象能转换成某个类型,那么会进行转换,如果无法转换成目标类型,那么他回返回一个null,不会抛出异常。
foreach (object x in arr)
{
Class1 o = x as Class1;
if (o != null)
{
Console.WriteLine(o.name);
}
}
万能变量 var; 能转能用
动态类型 dynamic;能转不能用
泛型集合
List<数据类型> li=new List<数据类型>;
List<Class1> l = new List<Class1>();
l.Add(a);
foreach (Class1 x in l)
{
Console.WriteLine(x.name);
}
比集合更好用;
类库:
它可以使类的方法转化为只有电脑能读懂而人却读不懂的东西,起到保密性,比如各大游戏的代码;
点击解决方案-创建类库-创建完生成-引用dll文件(注意命名空间和类名)-dll文件放到Bin/Debug文件下;
鼠标放在方法名上,按F12可以查看类库的位置与方法名;
委托 delegate:函数的指针
委托变量的类型必须与方法的一样(返回值,变量);
委托变量在赋值时,赋值的方法不需要写后面的小括号;
public delegate int de(int a, int b);
de d = a.cheng;
Console.WriteLine(d(1, 2));