C#委托跨跨模块传值

C#委托跨跨模块传值

个人感觉C#里的委托有点像C里面的函数指针。下面就简单说说跨模块传值吧。

一般而言,我们如果A类中有B类,那么A类可以调用B类的值,而B类是无法调用A类的值的。而,我们想通过操作B类对A类的某些值进行操作的话,就可以利用委托。

假设是以下函数模型

模块 A()

{

   string str;

   B b;

}

模块 B( )

{

}

我们想通过B中的函数修改A中str的值,就可以定义一个委托 delegatemydel名称吧,然后在模块B中定义个委托类型的变量,可以传入委托函数。如下

模块B()

{

   mydel del;

}

定义好之后,del的值怎么传入呢,怎么给del赋值呢,这就需要用到两个模块之间的构造函数,假设为类

就按如下:并编写一个函数去调用del;但现在在B中还是无法访问到A中内容的。

模块B()

{

  public B(mydel del)

  {

    this.del=del;

  }

    mydel del;

   public void test()

    {

           del();//这里就可以调用del函数修改

     }

}

 那么下一步就是该如何去传A中的内容到B了,定义一个函数test,和委托类型要一致,然后在构造Bb的时候,把函数作为参数传过去。

模块A()

{

string str;

      b(test);

void testA(string strB)

{

  str=strB;

}

}

 

这就就将A中的str的值和testA传给了B中,然后在B中进行修改赋值就会影响A了。

实际例子过段时间找一个传上来。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值