我正在写一个与事件和方法具有相同名称的类,但是视觉学习不允许我
事件
public event Close()
方法
Public Sub Close()
End Sub
我怎么能这样做,我不想使用不同的名字
感谢
答案 0 :(得分:4)
Microsoft框架设计指南指出了以下内容作为最佳实践(这些内容来自我们的内部文档,但源自前面提到的指南,我将在其中找到链接):
- 使用动词或动词短语命名事件。
- 使用现在和过去时,给事件名称赋予前后概念 (动名词)
- 例如,在窗口关闭之前引发的关闭事件将被称为>
Closing
和窗口关闭后引发的Closed
将被称为Before
。- 请勿使用
After
或EventHandler
前缀或后缀来表示事件前后事件。- 使用
sender
后缀命名事件处理程序(用作事件类型的委托)。- 在事件处理程序签名中使用名为
e
和Object
的两个参数。
- sender参数应为
e
类型,EventArgs
参数应为EventArgs
的实例或继承自Closing
。- 使用
OnClosing
后缀命名事件参数类。- 使用On命名事件处理程序方法。
- 例如,处理{{1}}事件的方法应命名为{{1}}。
答案 1 :(得分:1)
AFAIK .NET编译器不允许这种重载。 试试这个:
public event OnClose()
Public Sub Close()
' implementation goes here
End Sub
答案 2 :(得分:1)
如果编译器允许这样做,那么它可能允许实例变量和委托具有相同的名称。想象一下这个(荒谬的)代码:
Public Class Class1
Public XYZ As String
Public Event XYZ(ByVal X As XYZ)
Public Delegate Sub XYZ()
Public Sub XYZ()
RaiseEvent XYZ(AddressOf XYZ)
End Sub
End Class