当前位置: 首页 > news >正文

写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?

VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?

分享

1. 在 VB.NET 中指定运行 Sub Main

在 VB.NET 里,你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式:

方式一:在项目属性中设置
  • 打开你的 VB.NET 项目。
  • 右键点击项目名称,选择 “属性”。
  • 在 “应用程序” 选项卡中,将 “启动对象” 设置为包含 Sub Main 的类。
方式二:使用代码指定

在代码中,你可以创建一个包含 Sub Main 的类,示例如下:

Module Program
    Sub Main()
        Console.WriteLine("程序从 Sub Main 开始执行。")
        ' 可以在这里调用其他类和方法
    End Sub
End Module

2. 调用任意类时先执行某段初始化代码

当调用任意类时,若想先执行某段初始化代码,有以下几种实现方法:

方法一:使用静态构造函数

静态构造函数会在类被首次使用之前自动执行,并且仅执行一次。示例如下:

Public Class MyClass
    Private Shared isInitialized As Boolean = False

    Shared Sub New()
        If Not isInitialized Then
            ' 执行初始化代码
            Console.WriteLine("执行初始化代码。")
            isInitialized = True
        End If
    End Sub

    Public Sub DoSomething()
        Console.WriteLine("执行其他操作。")
    End Sub
End Class

Module Program
    Sub Main()
        Dim obj As New MyClass()
        obj.DoSomething()
    End Sub
End Module
方法二:使用单例模式

单例模式可以确保一个类仅有一个实例,并在首次创建实例时执行初始化代码。示例如下:

Public Class SingletonClass
    Private Shared _instance As New Lazy(Of SingletonClass)(Function() New SingletonClass())
    Private Sub New()
        ' 执行初始化代码
        Console.WriteLine("执行初始化代码。")
    End Sub

    Public Shared ReadOnly Property Instance() As SingletonClass
        Get
            Return _instance.Value
        End Get
    End Property

    Public Sub DoSomething()
        Console.WriteLine("执行其他操作。")
    End Sub
End Class

Module Program
    Sub Main()
        Dim singleton As SingletonClass = SingletonClass.Instance
        singleton.DoSomething()
    End Sub
End Module
方法三:在调用类的方法前手动调用初始化方法

你可以在类中定义一个初始化方法,在调用其他方法之前手动调用该初始化方法。示例如下:

Public Class MyClass
    Private isInitialized As Boolean = False

    Public Sub Initialize()
        If Not isInitialized Then
            ' 执行初始化代码
            Console.WriteLine("执行初始化代码。")
            isInitialized = True
        End If
    End Sub

    Public Sub DoSomething()
        Initialize()
        Console.WriteLine("执行其他操作。")
    End Sub
End Class

Module Program
    Sub Main()
        Dim obj As New MyClass()
        obj.DoSomething()
    End Sub
End Module

这些方法各有特点,你可以依据具体需求选择合适的方法来执行初始化代码。

http://www.dtcms.com/a/113409.html

相关文章:

  • vs环境中编译osg以及osgQt
  • RAGFlow:基于OCR和文档解析的下一代 RAG 引擎
  • [ctfshow web入门] web6
  • 解决cline等免费使用deepseek模型的问题
  • Lombok使用指南
  • SEO长尾词优化实战技巧
  • 2025大唐杯仿真2——基站开通
  • STM32提高篇: CAN通讯
  • 【Docker】在Orin Nano上使用Docker
  • SQL ServerAlways On 可用性组配置失败
  • [ctfshow web入门] web3
  • vue2项目中,多个固定的请求域名 和 通过url动态获取到的ip域名 封装 axios
  • [leetcode]1786. 从第一个节点出发到最后一个节点的受限路径数(Dijkstra+记忆化搜索/dp)
  • 私有部署stable-diffusion-webui
  • 44. 评论日记
  • STP学习
  • 【LeetCode】大厂面试算法真题回忆(48)--静态扫描最优成本
  • 为 IDEA 设置管理员权限
  • MYSQL 存储引擎 和 日志
  • 论文阅读笔记:Denoising Diffusion Implicit Models (5)
  • 英伟达Blackwell架构深度拆解:新一代GPU如何突破算力瓶颈?
  • DHCP Snooping 主要作用
  • 【Redis】通用命令
  • 聊聊Spring AI的ChromaVectorStore
  • #SVA语法滴水穿石# (007)关于 $past 的用法
  • P10587 「ALFR Round 2」C 小 Y 的数 Solution
  • Python 如何高效实现 PDF 内容差异对比
  • 房地产之后:探寻可持续扩张的产业与 GDP 新思
  • 在线编辑数学公式
  • NDK开发:音视频处理基础