多看,多练---》多写(程序是写出来的)
1.程序集
打包的类,
类的访问级别:public 公共的 private 私有的 protected 子类访问 internal(默认)
自己写程序集:新建类库---》生成(bin/Debug/dll文件)添加引用
程序集不能A-->B B--->A 不能相互引用(单向引用)
exe,dll都是程序集,exe有Main入口
GAC(全局程序集)
2.委托与事件
public delegate void SomeDelegate();
声明一个委托类型的写法: delegate 返回值类型 类型名称(参数)
public delegate string SomeDelegate(string s);
SomeDelegate s1=new SomeDelegate(FKH);//指向FKH方法,也可简写
SomeDelegate s2=FKH;
s1("IS this you handbag");调用
static string FKH(string s)
{
return "["+s+"]";
}
委托与事件的区别:委托是一种类型,事件是对象,没有可比性,事件内部是用委托来实现的。事件就类似于属性一样的.内部有一个add.remove 方法,让委托只能用+=来注册-=来取消.防止外面调用=null来取消了事件.
private SomeDelegate onSome;//委托
//事件的标准写法
public event 委托类型 名称
public event SomeDelegate _OnSome
{
add {onSome+=value;}
remove{onSome-=value;}
}
也可以简写,编译器(JIT),会自动帮你声明一个私有的委托,再为事件增加两个方法(Add,remove)
public event SomeDelegate _OnSome
{}
匿名函数
SomeDelegate f=delegate(string s){return "";}
lambda表达式
3.扩展方法,让string类有扩展方法,第一个方法要加this 中参数
1.static class StringHelper{
static string TOHZ(this string s)
return "";
}
4.LINQ
var i1=6;根据右边来推断类型
int[] values={1,23,-22,29,987,78};
var e1=values.Where(i=>i>0).orderby(i=>i).select(i=>"["+i+"]");
//这样写就可以了
var e2=from i in values
where i>0
orderby i
select "["+i+"]";
5.正则表达式
1.程序集
打包的类,
类的访问级别:public 公共的 private 私有的 protected 子类访问 internal(默认)
自己写程序集:新建类库---》生成(bin/Debug/dll文件)添加引用
程序集不能A-->B B--->A 不能相互引用(单向引用)
exe,dll都是程序集,exe有Main入口
GAC(全局程序集)
2.委托与事件
public delegate void SomeDelegate();
声明一个委托类型的写法: delegate 返回值类型 类型名称(参数)
public delegate string SomeDelegate(string s);
SomeDelegate s1=new SomeDelegate(FKH);//指向FKH方法,也可简写
SomeDelegate s2=FKH;
s1("IS this you handbag");调用
static string FKH(string s)
{
return "["+s+"]";
}
委托与事件的区别:委托是一种类型,事件是对象,没有可比性,事件内部是用委托来实现的。事件就类似于属性一样的.内部有一个add.remove 方法,让委托只能用+=来注册-=来取消.防止外面调用=null来取消了事件.
private SomeDelegate onSome;//委托
//事件的标准写法
public event 委托类型 名称
public event SomeDelegate _OnSome
{
add {onSome+=value;}
remove{onSome-=value;}
}
也可以简写,编译器(JIT),会自动帮你声明一个私有的委托,再为事件增加两个方法(Add,remove)
public event SomeDelegate _OnSome
{}
匿名函数
SomeDelegate f=delegate(string s){return "";}
lambda表达式
3.扩展方法,让string类有扩展方法,第一个方法要加this 中参数
1.static class StringHelper{
static string TOHZ(this string s)
return "";
}
4.LINQ
var i1=6;根据右边来推断类型
int[] values={1,23,-22,29,987,78};
var e1=values.Where(i=>i>0).orderby(i=>i).select(i=>"["+i+"]");
//这样写就可以了
var e2=from i in values
where i>0
orderby i
select "["+i+"]";
5.正则表达式