【转】编写高质量代码改善C#程序的157个建议——建议36:使用FCL中的委托声明
2021-04-24 21:26
标签:eve object 处理 syn 建议 编写高质量代码 注意 line sync 建议36:使用FCL中的委托声明 FCL中存在3类这样的委托声明,它们分别是:Action、Func、Predicate。尤其是在它们的泛型版本出来以后,已经能够满足我们在实际编码过程中的大部分需求。 Action的重载版本有17个,最多参数的重载有16个参数。 Func的重载版本有17个,最多参数的重载有16个参数。 注意:很少方法的参数能够超过16个,如果真有这样的参数,首先要考虑自己设计是否存在问题。另外,我们也可以使用params关键字来减少参数的声明。如: static void Method1(params int[] i) 表示该方法接受0个或多个整型参数。 委托声明AddHandler和PrintHandler完全可以被Func与Action取代。 我们应该习惯在代码中使用这类委托来代替自己的委托声明。 处理Action、Func和Predicate外,FCL中还有用于表示特殊含义的委托声明。如 用于表示注册事件方法的委托声明: 表示线程方法的委托声明: 表示异步回调的委托声明: 在FCL中每一类委托声明都代表一类特殊的用途,虽然可以使用自己的委托声明来代替,但是这样做不仅没有必要,而且会让代码失去简洁性和标准性。在我们实现自己的委托声明前,应该首先查看MSDN,确信有必要后才这样做。 转自:《编写高质量代码改善C#程序的157个建议》陆敏技 【转】编写高质量代码改善C#程序的157个建议——建议36:使用FCL中的委托声明 标签:eve object 处理 syn 建议 编写高质量代码 注意 line sync 原文地址:http://www.cnblogs.com/farmer-y/p/7943713.html
delegate int AddHandler(int i, int j);
delegate void PrintHandler(string msg);
static void Main(string[] args)
{
AddHandler add = Add;
PrintHandler print = Print;
print(add(1, 2).ToString());
}
static int Add(int i, int j)
{
return i + j;
}
static void Print(string msg)
{
Console.WriteLine(msg);
}
static void Main(string[] args)
{
Funcint, int, int> add = Add;
Actionstring> print = Print;
print(add(1, 2).ToString());
}
static int Add(int i, int j)
{
return i + j;
}
static void Print(string msg)
{
Console.WriteLine(msg);
}
public delegate void EventHandler(object sender, EventArgs e);
public delegate void EventHandler
public delegate void ThreadStart();
public delegate void ParameterizedThreadStart(object obj);
public delegate void AsyncCallback(IAsyncResult ar);
文章标题:【转】编写高质量代码改善C#程序的157个建议——建议36:使用FCL中的委托声明
文章链接:http://soscw.com/index.php/essay/79110.html