1.类库
以dell结尾的文件,类的仓库,里面有很多编译的c#代码,
不可以阅读,不可以修改只能调用,保密性好,使用者无法自己更改类库,只能使用
使用方法:引用 点击右键,添加引用,浏览,选择到相应的dll文件,确定。点击右键查看 属性 复制本地是否为true,不是更改 然后在开头加上 【using 命名空间名字】
2.通用变量 var
var可以是任何数据类型
var a = 10; var ss = "sadsda";
3.is和as运算符
is是判断某个对象是否为某种类型,返回bool类型
格式:某对象 is 某类型 如果匹配上返回true。否则返回false
as是将某个对象转换成某种类型,返回的是对象或者null
如果转换成功返回对象,失败了不会报错,而是返回一个null值
例子:
ArrayList list = new ArrayList(); var a = 10; var b = "asdad"; list.Add(a); list.Add(b); foreach(var c in list) { if (c is int) //判断c是否为int类型,是返回true,不是返回false 格式 某对象 is 某类型 { Console.WriteLine(c); } string cc = c as string;//判断c是否为字符串类型,不是返回null,是的返回对象 if (cc != null) { Console.WriteLine(c); } } Console.ReadLine();
4.委托:delegate
方法的指针
事件也是一种委托,但是是一种特殊的委托,
委托可以让方法变成参数一样随便传递
例:
方法: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ConsoleApplication2; namespace ConsoleApplication2 { public class JiaJian { public int jiafa(int a, int b) { return a + b; } public int jianfa(int a, int b) { return a - b; } public int dajianfa(int a, Firstdel fd)//委托可以让方法变成参数一样随便传递 { return a + fd(10,20); } } }
主函数: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ConsoleApplication2; namespace ConsoleApplication2 { public delegate int Firstdel(int a, int b); class Program { static void Main(string[] args) { JiaJian jj = new JiaJian(); Firstdel fd = jj.jiafa; int aaa = jj.dajianfa(10, fd);//调用大加法这个方法,参数fd为加法,(委托可以让方法变成参数一样随便传递) Console.WriteLine(aaa); Console.ReadLine(); } } }
public delegate int FirstDel(int a,int b);
创建委托变量:
先实例化方法
FirstDel 名字 = 委托类中的方法;
在class program中声明
public delegate int FirstDel(int a, int b);
在mian函数中
JiaJian jj = new JiaJian(); ---jiajian里面有2个方法,分别位加减方法,格式和委托一样,需要2个参数,返回int类型 FirstDel fd = jj.Jia;
Console.WriteLine(fd(10,20)); 打印的结果位 30,
fd = jj.jian;
Console.WirteLine(fd(20,10)); 打印的结果位 10;