C#高级编程学习1----总结

来源:互联网 发布:淘宝服装质量问题范围 编辑:程序博客网 时间:2024/06/06 14:06
多看,多练---》多写(程序是写出来的)
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.正则表达式


原创粉丝点击