vb.net - 如何将 "sub property"添加到类属性

标签 vb.net class properties

如果在代码中我想做类似下面的事情,我的类定义需要是什么样子? (请记住,水果/语言只是一个例子)

dim myfruit as new fruit()
myfruit.name = "apple"
myfruit.name.spanish = "manzana"

这是我的类(class),只是不知道如何添加“子属性”。

Public Class Fruit
    Private _name As String
    Public Property name() As String
        Get
            Return _name 
        End Get
        Set(ByVal value As String)
            _name = value
        End Set
    End Property
End Class

最佳答案

一般来说,要拥有“子属性”,您需要将属性本身设置为一个。这意味着子属性实际上是顶级属性公开的类上的属性。

实际上,您可以将 name 属性从字符串更改为“Translations”类或类似类,即:

Public Class Fruit
    Public Property Name As New Translations
End Class

Public Class Translations
    Public Property Primary As String
    public Property Spanish As String
End Class

但是,这可能会破坏您正在显示的代码,因为第二行需要具有不同的语法,即:

myfruit.Name.Primary = "green"
myfruit.Name.Spanish = "verde"

但是,如果此处的目标只是处理用户界面的翻译,则还有其他选择。详情见Introduction to International Applications Based on the .NET Framework在 MSDN 上。

关于vb.net - 如何将 "sub property"添加到类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835295/

相关文章:

c++ - 从父类(super class)对象调用子类方法,虚函数

asp.net - VB.NET Directory.GetFiles 按日期排序

c# - 当前安装不支持该项目类型

mysql - 存储过程 VB.NET MYSQL

java - 明星二级Java类

Java 属性文件,其中属性名称带有整数值后缀

javascript - ASP.NET 在执行代码隐藏之前确认

java - 如何让 Class.forName 忽略小写/大写

wpf - 使用依赖项属性在 ControlTemplate 触发器中设置值

javascript - Python 相当于 JavaScript 的 `Object.defineProperty()`