温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

VB.NET构造器是什么

发布时间:2021-06-16 16:28:31 来源:亿速云 阅读:245 作者:chen 栏目:编程语言

本篇内容主要讲解“VB.NET构造器是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VB.NET构造器是什么”吧!

面向对象编程现在被大多数人使用,这里我们一起来看看关于面向对象中构造器的理解。VB.NET构造器的范围对类的行为有重要的含义。一个Public类中的Friend构造器使我们只可以从同一个程序集内部创建这个类,所以它同你在VB6的类中用的PublicNotCreatable设置有很多共同之处。一个私有的(private)VB.NET构造器使这个类根本不能创建,如果类只是共享方法的一个容器,这种构造器就很有用。

  • 快速学习VB.NET追加文件

  • 怎样将OCX植入VB.NET执行文件内

  • 概括总结VB.NET OPEN语句5个方法

  • 归纳总结VB.NET函数宝典

  • 快速使用VB.NET shell程序

(这样的类的例子有System.Console和System.Environment。)更确切地说,一个代码片段可以实例化一个带有私有构造器的类,只要那个代码位于类内部或嵌套的类中,因为一个嵌套的类型可以访问包含它的类型的私有的成员。创建只包含一个共享成员的一个 VB.NET类的更简单的方法就是定义一个Module。Module是规则的、不能创建的类,它的成员是静态的。注意,.NET runtime对模块并不很重视(C#中没有Module):VB.NET对模块的支持只可以简化VB6代码的移植,而且编译器将一个Module中的所有成员都明确地转换成静态成员。

注意初始化字段,前面的讲述可能意味着私有VB.NET构造器只有在很少的情况下才有用,但实际并不是这样的。例如,当你的类包含许多字段的初始化设置时,定义一个空的Private Sub New过程就很方便:

Public MinSize As Integer = 10 Public MaxSize As Integer = 1000 ' ...(other fields with initializers)

编译器在每个构造器开始处都会进行隐含的赋值,保证在构造器运行时,所有的字段都包含正确的初始值。如果你有20个初始化字段和10个构造器,那么你的类就会包含多达200个隐含的赋值,这样就会浪费内存中和磁盘上的字节。如果你定义一个虚拟的不带参数的私有构造器,并让所有的公有构造器调用它,那么编译器就只添加20个隐含的语句到私有构造器中。通过Microsoft Intermediate Language Disassembler(ILDASM)运行产生的可执行的文件,你就可以看到在每种情况下编译器创建的代码。

当客户端要通过一个共享的函数(作为类的工厂方法(factory method ))来创建类的实例时,就体现了私有构造器的另一个好处。一个共享的方法可以让你在创建类的一个新实例前运行一些代码——例如,查看一个具有相同属性的对象是否在你内部管理的对象池中。你不能用一个规则的构造器来实现这种功能,因为只有在一个新实例已经运行时,规则的构造器的代码才运行(见列表1)。

你在从一个类派生一个更简单的新类时,可以看到OOP的强大。派生的类自动继承基类的所有字段、属性、事件和接口,所以你只需要关注你想添加到派生的类中的成员:

Class Person  Public FirstName As String  Public LastName As String  Function CompleteName() As String  Return FirstName & " " & LastName  End Function  End Class  Class Customer  Inherits Person  ' a new field and a new method  Public Title As String  Function ReverseName() As String  Return LastName & ", " & FirstName  End Function  End Class

更好的是,如果你期望派生的类有不同的行为,你还可以覆盖基类中的属性或方法。例如,你可能想让Customer.CompleteName方法以 “Mr. John Doe”的形式返回一个字符串。你必须做两件事来覆盖一个成员:将基类的成员标记为Overridable,使它成为一个虚拟的成员,用关键字 Overrides来标记派生的类的成员:

' in Person class  Overridable Function CompleteName() As String  ' ...(as before)  End Function   ' in Customer class  Overrides Function CompleteName() _  As String  Return Title & " " & FirstName _  & " "& LastName  End Function

重用基类中的代码
Visual Studio .NET为我们在一个派生的类中写被覆盖的成员的代码提供了一个很好的捷径:在编辑窗口上方最左边的ComboBox中选择类名字下的(Overrides)成员,然后在最右边的ComboBox中选择你想覆盖的成员(见图1)。在派生的类中你不需要用关键字Overridable,因为被覆盖的方法本身就是可以被覆盖的。如果你出于某种原因想停止进一步覆盖那个方法,你必须用关键字NotOverridable标记它:

' derived classes can't override this  NotOverridable Overrides Function _  CompleteName()As String  ' ...  End Function

到此,相信大家对“VB.NET构造器是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI