VB.NET中能否基于一个基类定义两个字段不同的派生类C1、C2?
在VB.NET中通过基类+派生类实现不同字段定义是否可行?
完全可行,VB.NET的继承机制支持这种设计。你可以先定义一个基类(可空或包含共用逻辑),再让两个派生类分别实现各自的字段集合。
示例代码
' 基类:可作为派生类的统一标识,也可添加共用方法/属性 Public Class BaseClass ' 若有通用逻辑(如数据验证、序列化方法等)可在此定义 End Class ' 派生类C1:对应初始字段定义 Public Class C1 Inherits BaseClass ' 注意:VB.NET中Char为单个字符,若需固定长度字符数组可按如下定义 Public TR As Char() = New Char(1) {} ' 对应char(2)的字符数组 Public F1 As Char() = New Char(9) {} ' 对应char(10)的字符数组 End Class ' 派生类C2:对应调整后的字段定义 Public Class C2 Inherits BaseClass Public TS As Char() = New Char(1) {} ' 对应char(2)的字符数组 Public F1 As Single ' VB.NET中float对应Single类型 End Class
补充说明
- 若后续需要对C1、C2做统一操作(如存入
List(Of BaseClass)),基类能提供统一的类型标识,访问派生类独有的字段时需先进行类型转换(如DirectCast(baseInstance, C1).TR)。 - 如果你实际需求是固定长度字符串而非字符数组,可使用VB.NET的固定长度字符串特性:
Imports Microsoft.VisualBasic Public Class C1 Inherits BaseClass <VBFixedString(2)> Public TR As String <VBFixedString(10)> Public F1 As String End Class
内容的提问来源于stack exchange,提问作者Tleilax
相关产品推荐
相关产品推荐

