寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼?

VB.NET 寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼?

分享

1. 在?VB.NET?中指定運行?Sub Main

在?VB.NET?里,你能夠指定?Sub Main?作為程序的入口點。下面為你介紹兩種實現方式:

方式一:在項目屬性中設置
  • 打開你的?VB.NET?項目。
  • 右鍵點擊項目名稱,選擇 “屬性”。
  • 在 “應用程序” 選項卡中,將 “啟動對象” 設置為包含?Sub Main?的類。
方式二:使用代碼指定

在代碼中,你可以創建一個包含?Sub Main?的類,示例如下:

Module ProgramSub Main()Console.WriteLine("程序從 Sub Main 開始執行。")' 可以在這里調用其他類和方法End Sub
End Module

2. 調用任意類時先執行某段初始化代碼

當調用任意類時,若想先執行某段初始化代碼,有以下幾種實現方法:

方法一:使用靜態構造函數

靜態構造函數會在類被首次使用之前自動執行,并且僅執行一次。示例如下:

Public Class MyClassPrivate Shared isInitialized As Boolean = FalseShared Sub New()If Not isInitialized Then' 執行初始化代碼Console.WriteLine("執行初始化代碼。")isInitialized = TrueEnd IfEnd SubPublic Sub DoSomething()Console.WriteLine("執行其他操作。")End Sub
End ClassModule ProgramSub Main()Dim obj As New MyClass()obj.DoSomething()End Sub
End Module
方法二:使用單例模式

單例模式可以確保一個類僅有一個實例,并在首次創建實例時執行初始化代碼。示例如下:

Public Class SingletonClassPrivate Shared _instance As New Lazy(Of SingletonClass)(Function() New SingletonClass())Private Sub New()' 執行初始化代碼Console.WriteLine("執行初始化代碼。")End SubPublic Shared ReadOnly Property Instance() As SingletonClassGetReturn _instance.ValueEnd GetEnd PropertyPublic Sub DoSomething()Console.WriteLine("執行其他操作。")End Sub
End ClassModule ProgramSub Main()Dim singleton As SingletonClass = SingletonClass.Instancesingleton.DoSomething()End Sub
End Module
方法三:在調用類的方法前手動調用初始化方法

你可以在類中定義一個初始化方法,在調用其他方法之前手動調用該初始化方法。示例如下:

Public Class MyClassPrivate isInitialized As Boolean = FalsePublic Sub Initialize()If Not isInitialized Then' 執行初始化代碼Console.WriteLine("執行初始化代碼。")isInitialized = TrueEnd IfEnd SubPublic Sub DoSomething()Initialize()Console.WriteLine("執行其他操作。")End Sub
End ClassModule ProgramSub Main()Dim obj As New MyClass()obj.DoSomething()End Sub
End Module

這些方法各有特點,你可以依據具體需求選擇合適的方法來執行初始化代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75797.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75797.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75797.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【AI插件開發】Notepad++ AI插件開發實踐(代碼篇):從Dock窗口集成到功能菜單實現

一、引言 上篇文章已經在Notepad的插件開發中集成了選中即問AI的功能,這一篇文章將在此基礎上進一步集成,支持AI對話窗口以及常見的代碼功能菜單: 顯示AI的Dock窗口,可以用自然語言向 AI 提問或要求執行任務選中代碼后使用&…

關聯容器-模板類pair數對

關聯容器 關聯容器和順序容器有著根本的不同:關聯容器中的元素是按關鍵字來保存和訪問的,而順序容器中的元素是按它們在容器中的位置來順序保存和訪問的。 關聯容器支持高效的關鍵字查找和訪問。 兩個主要的關聯容器(associative-container),set和map。 set 中每個元素只包…

京東運維面試題及參考答案

目錄 OSPF 實現原理是什么? 請描述 TCP 三次握手的過程。 LVS 的原理是什么? 闡述 Nginx 七層負載均衡的原理。 Nginx 與 Apache 有什么區別? 如何查看監聽在 8080 端口的是哪個進程(可舉例:netstat -tnlp | grep 8080)? OSI 七層模型是什么,請寫出各層的協議。 …

輸入框輸入數字且保持精度

在項目中如果涉及到金額等需要數字輸入且保持精度的情況下,由于輸入框是可以隨意輸入文本的,所以一般情況下可能需要監聽輸入框的change事件,然后通過正則表達式去替換掉不匹配的文本部分。 由于每次文本改變都會被監聽,包括替換…

使用 requests 和 BeautifulSoup 解析淘寶商品

以下將詳細解釋如何通過這兩個庫來實現按關鍵字搜索并解析淘寶商品信息。 一、準備工作 1. 安裝必要的庫 在開始之前,確保已經安裝了 requests 和 BeautifulSoup 庫。如果尚未安裝,可以通過以下命令進行安裝: bash pip install requests…

C#調用ACCESS數據庫,解決“Microsoft.ACE.OLEDB.12.0”未注冊問題

C#調用ACCESS數據庫,解決“Microsoft.ACE.OLEDB.12.0”未注冊問題 解決方法: 1.將C#采用的平臺從AnyCpu改成X64 2.將官網下載的“Microsoft Access 2010 數據庫引擎可再發行程序包AccessDatabaseEngine_X64”文件解壓 3.安裝解壓后的文件 點擊下載安…

【文獻閱讀】Vision-Language Models for Vision Tasks: A Survey

發表于2024年2月 TPAMI 摘要 大多數視覺識別研究在深度神經網絡(DNN)訓練中嚴重依賴標注數據,并且通常為每個單一視覺識別任務訓練一個DNN,這導致了一種費力且耗時的視覺識別范式。為應對這兩個挑戰,視覺語言模型&am…

【Kubernetes】StorageClass 的作用是什么?如何實現動態存儲供應?

StorageClass 使得用戶能夠根據不同的存儲需求動態地申請和管理存儲資源。 StorageClass 定義了如何創建存儲資源,并指定了存儲供應的配置,例如存儲類型、質量、訪問模式等。為動態存儲供應提供了基礎,使得 Kubernetes 可以在用戶創建 PVC 時…

Muduo網絡庫介紹

1.Reactor介紹 1.回調函數 **回調(Callback)**是一種編程技術,允許將一個函數作為參數傳遞給另一個函數,并在適當的時候調用該函數 1.工作原理 定義回調函數 注冊回調函數 觸發回調 2.優點 異步編程 回調函數允許在事件發生時…

Debian編譯安裝mysql8.0.41源碼包 筆記250401

Debian編譯安裝mysql8.0.41源碼包 以下是在Debian系統上通過編譯源碼安裝MySQL 8.0.41的完整步驟,包含依賴管理、編譯參數優化和常見問題處理: 準備工作 1. 安裝編譯依賴 sudo apt update sudo apt install -y \cmake gcc g make libssl-dev …

Git常用問題收集

gitignore 忽略文件夾 不生效 有時候我們接手別人的項目時,發現有的忽略不對想要修改,但發現修改忽略.gitignore后無效。原因是如果某些文件已經被納入版本管理在.gitignore中忽略路徑是不起作用的,這時候需要先清除本地緩存,然后…

編程哲學——TCP可靠傳輸

TCP TCP可靠傳輸 TCP的可靠傳輸表現在 (1)建立連接時三次握手,四次揮手 有點像是這樣對話: ”我們開始對話吧“ ”收到“ ”好的,我收到你收到了“ (2)數據傳輸時ACK應答和超時重傳 ”我們去吃…

【MediaPlayer】基于libvlc+awtk的媒體播放器

基于libvlcawtk的媒體播放器 libvlc下載地址 awtk下載地址 代碼實現libvlc相關邏輯接口UI媒體接口實例化媒體播放器注意事項 libvlc 下載地址 可以到https://download.videolan.org/pub/videolan/vlc/去下載一個vlc版本,下載后其實是vlc的windows客戶端&#xff0…

pulsar中的延遲隊列使用詳解

Apache Pulsar的延遲隊列支持任意時間精度的延遲消息投遞,適用于金融交易、定時提醒等高時效性場景。其核心設計通過堆外內存索引隊列與持久化分片存儲實現,兼顧靈活性與可擴展性。以下從實現原理、使用方式、優化策略及挑戰展開解析: 一、核…

單鏈表的實現 | 附學生信息管理系統的實現

目錄 1.前言: 2.單鏈表的相關概念: 2.1定義: 2.2形式: 2.3特點: 3.常見功能及代碼 : 3.1創建節點: 3.2頭插: 3.3尾插: 3.4頭刪: 3.5尾刪: 3.6插入…

java實用工具類Localstorage

public class LocalStorageUtil {//提供ThreadLocal對象,private static ThreadLocal threadLocalnew ThreadLocal();public static Object get(){return threadLocal.get();}public static void set(Object o){threadLocal.set(o);}public static void remove(){threadLocal.r…

LLM-大語言模型淺談

目錄 核心定義 典型代表 核心原理 用途 優勢與局限 未來發展方向 LLM(Large Language Model)大語言模型,指通過海量文本數據訓練 能夠理解和生成人類語言的深度學習模型。 核心定義 一種基于深度神經網絡(如Transformer架…

【小兔鮮】day03 Home模塊與一級分類

【小兔鮮】day03 Home模塊與一級分類 1. Home-整體結構搭建和分類實現1.1 頁面結構 2. Home-banner輪播圖功能實現 1. Home-整體結構搭建和分類實現 1.1 頁面結構 分類實現 2. Home-banner輪播圖功能實現 輪播圖實現 在HomeBanner.vue中寫出輪播圖的結構 在apis目錄下新建h…

C++中的多態和模板

#include <iostream> #include <cstdlib> #include <ctime> #include <string>using namespace std;// 武器基類 class Weapon { public:virtual ~Weapon() {}virtual string getName() const 0; // 獲取武器名稱virtual int getAtk() const 0; …

Spring 概念

Spring 是一個功能強大、靈活且廣泛使用的 Java 企業級開發框架&#xff0c;它誕生于 2003 年&#xff0c;由 Rod Johnson 創建&#xff0c;初衷是簡化 Java EE 的開發過程。 一、Spring 是什么&#xff1f; 簡單來說&#xff1a; Spring 是一個輕量級的 Java 開發框架&#…