Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 事件处理程序中的功能代码错误实践?_C# - Fatal编程技术网

C# 事件处理程序中的功能代码错误实践?

C# 事件处理程序中的功能代码错误实践?,c#,C#,我在读一些C#编码标准,它有以下内容: “事件处理程序不应包含执行所需操作的代码。而是从事件处理程序调用另一个方法” 我想知道这是否有原因(性能或其他原因),或者这只是一种风格偏好?事件处理程序用于将GUI连接到您的业务逻辑 如果您有一个输入用户名的文本框和一个添加按钮,那么单击添加按钮应该只调用\u userRepository.AddUser(UsernameTextbox.Text)。您不想在事件处理程序中使用业务逻辑。您有此编码标准的参考资料吗?上下文在这里可能有用。它是13。从第9节开

我在读一些C#编码标准,它有以下内容:

“事件处理程序不应包含执行所需操作的代码。而是从事件处理程序调用另一个方法”


我想知道这是否有原因(性能或其他原因),或者这只是一种风格偏好?

事件处理程序用于将GUI连接到您的业务逻辑


如果您有一个输入用户名的文本框和一个添加按钮,那么单击添加按钮应该只调用
\u userRepository.AddUser(UsernameTextbox.Text)
。您不想在事件处理程序中使用业务逻辑。

您有此编码标准的参考资料吗?上下文在这里可能有用。它是13。从第9节开始,从这里开始:。我目前正在编写我的项目标准,并研究各种编码标准以获取灵感,但我无法确定这是否只是一个建议,或者是否存在一些可靠的性能问题,例如,我理解你的意思,但我很好奇,究竟是有一个稳定的表现或其他问题,还是仅仅是一个好的风格问题?一个好的风格问题,准确地说,它是浮动在,和之间的某个地方。您不希望将用户添加到数据库(给定示例)所需的代码驻留在UserRepository类之外的其他地方。你可以通过一个简单的AddUser调用来实现这一点,这与性能或风格无关。特别是在UI应用程序的情况下,UI事件处理程序不应具有业务逻辑,因为这会导致不良耦合(例如,如果您以后希望在UI上下文(如原始类库)之外重用逻辑,则必须提取或复制逻辑).这些都是很好的答案,与我所怀疑的差不多,但我想确认一下,万一权力机构争论,为什么这是编码标准中的一项建议。我也曾一度怀疑自己。非常感谢!表达能力是另一个问题。事件处理程序方法通常以触发它们的事件命名,而不是以它们试图完成的任务命名。即使您只是添加与GUI相关的代码,以一个具有明确名称的方法的形式添加代码也会对下一个人有很大帮助。