使用vb.net时,如果代码包含在“ <>”符号内,例如名称空间,它将告诉编译器做什么?还有,当这样使用时,这些标志又叫什么?
使问题更清楚;我知道括号“()”通常用于参数,括号“ []”用于声明新类型,但是当以类似的方式使用时,我找不到小于/大于符号的作用。>
我查看了我的参考书,并尝试通过互联网进行研究,但我还没有给出答案。最可能的原因是我不知道这些名称的确切含义。我总是以谈论关系运算符为结果,这不是我想要的。
以下是我正在查看的示例:
Imports System.ComponentModel.Design
'<CLSCompliant(True)>
<System.ComponentModel.DefaultEvent("DataReceived")> _
Public Class SerialDF1forSLCMicroCon
Inherits MfgControl.AdvancedHMI.Drivers.DF1ForSLCMicroPLC5
Implements System.ComponentModel.IComponent
Implements System.ComponentModel.ISupportInitialize
Private Shared ReadOnly EventDisposed As New Object()
Public Event Disposed As EventHandler Implements System.ComponentModel.IComponent.Disposed
Protected m_synchronizationContext As System.Threading.SynchronizationContext
具体地说,我正在查看包含的行
<System.ComponentModel.DefaultEvent("DataReceived")> _
答案 0 :(得分:1)
那是attribute。这是一种将元数据(附加信息)附加到代码中的方法,以后可以使用反射来查询。
例如,假设您有一系列类(例如,Customer,Contact,Order,Product等),每个类都对应于一个数据库表,并且继承自一个DbTable
基类常见的DeleteAll()
方法。
现在,可能是您的数据库表名称与您的类名称不匹配。在这种情况下,您可以定义一个属性,该属性向您的类添加其他信息,并提供表名,如下所示:
<DbTableName("CUST01")>
Public Class Customer
Inherits DbTable
...
End Class
这表明您的“客户”对象存储在数据库的“ CUST01”表中。
您可以这样实现属性:
Public Class DbTableNameAttribute
Inherits System.Attribute
Public Property Name As String
Public Sub New(value As String)
Name = value
End Sub
End Class
最后,在基类DbTable
中,您将像这样实现DeleteAll()
:
Public MustInherit Class DbTable
Public Sub DeleteAll()
' Use reflection to retrieve the attribute.
Dim attributes = Me.GetType().GetCustomAttributes()
Dim dbTableNameAttribute = attributes.FirstOrDefault(Function(x) x.GetType() = GetType(DbTableNameAttribute)
If dbTableNameAttribute IsNot Nothing Then
Dim tableName As String = CType(dbTableNameAttribute, DbTableNameAttribute).Name
' tableName will contain the value specified in the attribute (e.g. "CUST01")
Dim sql As String = "delete from " & tableName
' ... at this point you would send the delete command to your database ...
End If
End Sub
End Class
现在,在特定示例中,您引用:<System.ComponentModel.DefaultEvent("DataReceived")>
可能发生的是SerialDF1forSLCMicroCon
类可能具有多个事件,并且该属性向设计人员提供了一个提示,即“ DataReceived”事件是默认事件。您将看到带有Windows窗体按钮的类似内容。如果单击某个按钮的事件,则有很多,但是默认情况下,“ Click”事件始终突出显示,因为它是最常用的事件。