Joh*_*n K 76 .net delegates naming-conventions
按照惯例,类通常被命名为名词,动词之类的方法和形容词之类的接口.
委托的常见命名约定是什么?或者,当代表在类型和其他事物中列出时,区分其名称的好方法是什么?
我的直接假设是将委托更可能命名为形容词,因为单个方法接口通常可以用委托替换.
一些想法:
delegate object ValueExtracting(object container);
delegate object ValueExtractor(object container);
delegate object ValueExtractionHandling(object container);
delegate object ValueExtractionHandler(object container);
Run Code Online (Sandbox Code Playgroud)
slu*_*ter 103
我个人使用了几种不同的模式:
[Task][State]Handler - UITaskFinishedHandler
[Event]Handler - ControlLoadedHandler
[Function Name]Delegate - DoSomeWorkDelegate - 当我需要创建一个委托来调用另一个/新线程上的函数时使用
[Task]Callback - ContainerLoadedCallback - 当控件A启动一个操作时使用,控件B执行大部分工作和控件A已将依赖关系传递给控件B(即ControlA可能已经传递了一个UI容器以供ControlB填充并需要通知才能实际显示容器)
当你有一个使用大量多线程或异步WCF调用的项目时,最终会有很多代表浮动,所以采用一个至少对你有意义的标准是很重要的.
Bor*_*nov 40
√请将后缀"EventHandler"添加到事件中使用的代理名称中.
√请将后缀"Callback"添加到除用作事件处理程序的代理名称之外.
X不要将后缀"Delegate"添加到委托.
Kev*_*ler 15
由于委托是执行动作(动词)的东西,因此应该将委托命名为您将调用执行该动作的内容.以Converter<TInput, TOutput>为例.动词是转换.进行转换的事情称为转换器,因此是委托的名称.
这取决于一些事情.
如果委托将用作事件,则应始终将其称为EventHandler子类型,例如:
public delegate void ValueExtractingEventHandler(object sender,
ValueExtractingEventArgs e);
Run Code Online (Sandbox Code Playgroud)
如果它不是一个事件,那么MS编码指南(我似乎永远无法在Google上找到正确的副本)明确建议不要在委托名称中包含"委托"或"处理程序"等字样,除非在特殊情况下EventHandler类型.
通常,代理应该以动作命名,这类似于ValueExtracting(如果代理在提取值之前发生)或ValueExtracted(在提取之后).
该Func<T1, T2, ..., TResult>委托语法也变得越来越普遍,但除非你有4个或多个参数往里走,你并不需要声明自己在所有-只需使用现有的:
object ExtractObject(object source, Func<object, object> extractor);
Run Code Online (Sandbox Code Playgroud)
当委托被用作闭包时,此语法最佳.委托本身没有一个非常有趣的名称,但参数是一个代理名词(提取器,提供者,评估者,选择器等)
大多数代表使用符合上述类别中的一个,因此请确定使用哪个类别进行适当选择.
| 归档时间: |
|
| 查看次数: |
26139 次 |
| 最近记录: |