如何在VB.Net中编写Lambda属性

问题描述

大约10年以来我一直没有在VB.NET中进行编码,现在我很难找到与此等效的语法:

public virtual string SomeProperty => "SomeValue"; 

解决方法

VB没有表达式健全的成员。您必须按照传统方式进行操作:

Public Overridable ReadOnly Property SomeProperty() As String
    Get
        Return "SomeValue"
    End Get
End Property
,

在一般情况下并不相同,但是对于这种特定情况,可以在初始化时使用隐式定义的属性:

Public Overridable ReadOnly Property SomeProperty As String = "SomeValue"

与上面的C#相比,它不那么通用,因为它仅适用于初始值,而我相信C#可以定义一个函数,该函数将在每次检索属性值时进行评估。 (在这种情况下,C#函数仅返回一个字符串常量,因此等效于使用该常量值初始化属性。)