请教一个C# 委托方面的问题

lihejushi 2011-05-28 11:59:53
我想在类中做一个委托,目的是其他人调用这个类的时候如果实现这个委托就可以实现自己的逻辑。代码很简单
public delegate int delegatealllen();
public delegatealllen Fundete
{
get
{
//这里不知道该怎么写
}
set
{
//这里不知道该怎么写
}
}

public int alllen()
{
if (Fundete != null)
{
return Fundete();
}
return 0;
}

这样其他人调用的时候只要实例化该类,完成委托,然后调用alllen()
就可以把他自己的逻辑加进去。但是设计委托的时候,那个get 和set方法该怎么写啊?请高手指点
...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihejushi 2011-05-30
  • 打赏
  • 举报
回复
感谢几位,我用frame2.0 所以不能写成{ get; set; }这样的形式
其实这只是我一个想法而已,现实中我不会用,我完全可以暴露一个方法供其他人重写就可以了。
再次对几位表示感谢
threenewbee 2011-05-29
  • 打赏
  • 举报
回复
public delegate int delegatealllen();
public delegatealllen Fundete
{
get
{
//这里不知道该怎么写
}
set
{
//这里不知道该怎么写
}
}

public int alllen()
{
if (Fundete != null)
{
return Fundete();
}
return 0;
}

可以简化为如下等效代码:

public Func<int> Fundete { get; set; }
public int alllen()
{
return Fundete == null ? 0 : Fundete();
}
漫天雪飞 2011-05-29
  • 打赏
  • 举报
回复
应该考虑用事件了.事件更安全
  • 打赏
  • 举报
回复
顺便说一下,有的时候事件语法明显比委托语法要更加安全。声明为事件,编译器只允许“其他人调用的时候”使用 += 和 -= 方式,而不是随便丢弃“第三人调用的时候”的设置。
  • 打赏
  • 举报
回复
public delegate int delegatealllen();

public delegatealllen _proc;

public delegatealllen Fundete
{
get
{
return _proc;
}
set
{
_proc=value;
}
}
机器人 2011-05-28
  • 打赏
  • 举报
回复
@@ 你可能需要是 event 而不是为delegate做get,set

实际上你的委托已经是public了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧