.net 扩展功能

View Code
 1  public static  class StringHelper
 2     {
 3        public static bool IsEmial(this  string s)
 4        {
 5            return s.Contains("@");
 6        }
 7        public static string  HZ(this bool b)
 8        {
 9            return b?"":"";
10        }
11     }


今天还是学委托和事件,我就个人理解来给说说委托和事件,委托和事件没有本质的联系。

委托是一个类型就像string ,class, emun但是它的作用又有点像多态定义的时候不知道要执行那个方法,

当被注册了哪个方法后才知道。它就像一个指针指向将来不知道的哪个方法。但是不同的是委托是约束方法的。如

 public delegate void ValidationDelegate(ValidationEventArgs e);//ding yi wei tuo
//委托方法
 void UserName_Validation(ValidationEventArgs e)
        {
            if (e.value.Length<= 2)
            {
                e.IsValid = false;
            }
        }

   public class ValidationEventArgs
    {
        public string value
        {
            set;
            get;
        }
        public bool IsValid
        {
            set;
            get;
 
        }
    }

定义的委托方法必须是跟委托的方法参数类型,参数个数一致。调用的话就直接调用

先声明委托对象

  public ValidationDelegate validation=UserName_Validation;

validation(e);调用委托

  事件public Even ValidationDelegate validation;

声明委托类型的对象前加个Even就是事件

事件内部声明了一个私有的委托对象;

通过Add 和remove方法只能注册和去掉方法不能赋值防止委托对象为空和被黑客调用其他的方法

委托可以用匿名函数(就是就用一次不再用了,不用定义变量直接用)

 

 

转载于:https://www.cnblogs.com/dsp123/archive/2012/09/19/2694376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值