【问题标题】:Named parameters with attribute constructors带有属性构造函数的命名参数
【发布时间】:2020-11-08 21:44:13
【问题描述】:

阅读有关使用属性的文档:https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/attributes/,它说允许使用命名参数。我把它读作构造函数的命名参数,但这似乎不起作用:

Public Class FullName
    Inherits System.Attribute
    Public Property Name As String
    Public Property Hey As String
    Sub New(FirstName As String, LastName As String)
        Name = FirstName + " " + LastName
    End Sub
End Class

<FullName(LastName:="moreno", FirstName:="John", Hey:="joe")>
Public Class Example
   Public Sub Test
      Dim x = New FullName(LastName:="moreno", FirstName:="john")
   End Sub 
End Class

属性不支持 vb 中构造函数的命名参数,还是我只是缺少正确的语法?

【问题讨论】:

  • 您应该始终以“Attribute”结尾的属性名称,因此应该是FullNameAttribute。将后缀应用于类型和成员时,可以省略后缀。

标签: vb.net attributes named-parameters


【解决方案1】:

实际的构造函数参数没有被命名。命名参数用于设置属性。你可以认为它很像常规代码中的对象初始化器:

Dim fn As New FullName("John", "moreno") With {.Hey = "joe"}
<FullName("John", "moreno", Hey:="joe")>

构造函数参数是该文档中引用的位置参数,然后命名参数是您可以设置或不可以设置的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 2021-02-18
    • 2013-01-24
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多