有人可以为我填写空白,包括使用的简短描述,也许还有代码片段?我特别清楚前两名,但最后一点尤其朦胧:
例如,我一直看到这样的东西,但仍然不太确定括号意味着什么......
<TemplateContainer(GetType(TemplateItem))> _
Public Property MessageTemplate As ITemplate
在这种情况下,它用于属性声明。它也可以在XML Literals中使用,如下所示:
<TestMethod>
Public Sub ThisIsATest()
If 1 <> 0 Then
Dim foo = <root>
<child>this is some XML</child>
</root>
End If
End Sub
VB.net使用括号,其中包括算术分组和函数参数(两者都使用C#中的括号),以及数组下标和默认属性参数(两者都使用C#中的括号),(索引器),它还使用(Of ... )
来包含一个类型列表(它将被包含在C#中的< ... >
中,没有“Of
”关键字。
大括号用于数组或集初始化表达式,并且在定义具有多个约束的泛型类型(例如(Of Foo As {IEnumerable, IDisposable, Class})
)时也使用。请注意,后一种用法仅在约束条件下允许;它是不可能的,例如, Dim MyThing As {IEnumerable, IDisposable, Class}
)。
大括号现在也用于New With {}
构造:
Dim p = New Person With {.Name = "John Smith", .Age = 27}
Dim anon = New With {.Name = "Jack Smythe", .Age = 23}
方括号用于包含拼写与保留字匹配的标识符。例如,如果一个类定义了一个名为Not
的方法(可能该类是用没有关键字Not
的语言编写的),可以在VB中使用这样的方法,将其名称括在方括号中(例如someVariable = [Not](5)
)。在没有方括号的情况下,上面的表达式会将someVariable
设置为-6(将vb.net Not
运算符应用于值5的结果)。
如其他地方所述,尖括号用于属性。请注意,在许多情况下,属性被放置在它们影响的事物上方的行上(以避免将受影响的变量推过屏幕的右边缘)。在旧版本的vb中,此类用法需要使用行继续标记(尾随下划线)。
角括号也用于XML Literals和XML Axis Properties:
Dim xml = <simpleTag><anotherTag>text</anotherTag></simpleTag>
Console.WriteLine(xml.<anotherTag>.First.Value)
在VB.Net中,<>
用于封装Attributes。
VB.NET使用<>
作为属性以及表示“不等于”(!=
)
在您的示例中,它只是包含属性。 C#中的相同代码将是
[TemplateContainer(GetType(TemplateItem))]
public ITemplate MessageTemplate { get; set; }
此属性用于开发模板化控件,该控件将数据与表示分开。换句话说,模板化控件可以在改变其外观的同时保留相同的功能。