1. 程式人生 > >你是如何處理“對非共享成員的引用要求物件引用”這個問題的?

你是如何處理“對非共享成員的引用要求物件引用”這個問題的?

我們在Visual Basic .NET中編寫一個窗體時,實際上是在寫一個類,寫完後按F5,居然就能執行!原來VB已經自行幫我們建立了這個類的一個例項了,不可思議吧!omg_smile.gif

你可能覺得這是那麼地理所當然,根本無需去理會它吧!呵呵,大多數情況下確實是這樣的。但是,如果你在程式中又編寫了另外一個窗體並且建立了它的一個例項,你想在新窗體中通過點選一個按鍵來呼叫主窗體的某個資料成員或某個方法,你會怎麼實現呢?

我先說一個最搓的方案(我想應該是我獨創的呵呵shades_smile.gif):在主窗體中新增一個Timer1控制元件,Timer1每Tick一次,你就讓程式判斷一下新窗體的按鍵是否被按,如果是的話,則呼叫事件——如果你把Interval值設得小一點就會模擬得很像的。很齷齪是吧?但是我在幾個月之前寫程式還經常用到這種方法,沒辦法,那時候沒有掌握技術呀!說簡單了,我們所有的問題就歸結在如何解決“對非共享成員的引用要求物件引用”這個問題。

你可能早就按捺不住地要開罵了,怎麼不通過模組中的Sub Main來建立一個主窗體例項呢?是呀,這真是一個可行的辦法,的確是可行的——但是並不實際,所以我並不想在這裡多說。

大家都看過《駭客帝國》吧?裡面的那個壞頭子,每次複製了自己,都不忘說幾句“Me Me Me”呵呵!對呀,每個窗體的例項就是Me呀!

關鍵是,怎麼把Me傳給新窗體呢?動點腦筋,有什麼事件是直接把主窗體和新窗體聯絡在一起的呢?哈teeth_smile.gif

當然是新窗體的New的例項構造函數了。雖然這個Sub New預設情況下是沒有引數的,不過我知道這個難不倒你啦regular_smile.gif。你只需重寫一下,把過載過的Sub New中的引數設為“ByVal ThisForm As frmMain”,然後定義一個全域性變數在Sub New中來接收主窗體的Me就OK啦!

這樣的問題,一般的書上是找不到答案的。我不知道是他們覺得這種方法簡單得沒必要說,還是那些寫書的人水平本來就不高。反正,如果你想學東西,就別總是抱著本書躲在家裡念,多多關注一下網路資源呵呵。

相關推薦

是如何處理共享成員引用要求物件引用這個問題的?

我們在Visual Basic .NET中編寫一個窗體時,實際上是在寫一個類,寫完後按F5,居然就能執行!原來VB已經自行幫我們建立了這個類的一個例項了,不可思議吧!你可能覺得這是那麼地理所當然,根本無需去理會它吧!呵呵,大多數情況下確實是這樣的。但是,如果你在程式中又編寫了

靜態的欄位、方法或屬性……要求物件引用【學習】要求物件引用

 首先看一段程式碼: using System; public class TestDelegate {  delegate void DG(string str);  public void Speaking(string strContent)  {   Console.WriteLine(strCon

靜態的欄位,方法或屬性要求物件引用如何解決?

寫了一個公共類DBhelper.cs,但是在引用的時候出現““ 非靜態的欄位、方法或屬性“DBhelper.ExecuteNonQuery(STRING,System.Data.SqlClient.SqlParameter[])”要求物件引用””,應該怎麼樣解決呢? 附DBh

Objective-C關於ARC模式下的物件引用計數

Objective-C是一門簡潔、強大、靈活的既具有面向物件特性也具有函數語言程式設計特性的程式語言。由於它是C語言的馬甲,也就是說,Objective-C可以將其原始碼先轉為純C語言然後再編譯為最終的目的碼,所以我們也可以用它來寫純C語言程式碼,它與C是完全相容的!(這

C#系列 ----- 3 值引用物件引用

值型別和引用型別(Value Types Versus Reference Types) 上一篇對於type的定義其實不準確,在此給出更準確的定義。 所有的C#型別包括: Value types Reference types Generic type par

JavaSE7基礎 static 成員變量,被這個類的所有共享

out 對象 args 優秀 馬雲 pre light png try 版本參數:jdk-7u72-windows-i586註意事項:博文內容僅供參考,不可用於其他用途。 代碼 class Test{ static String country = "China

Java+Selenium自動化輸入框的日曆或日期控制元件的處理

如圖:          1、問題描述:       在應用selenium實現web自動化時,經常會遇到處理日期控制元件點選問題,手工很簡單,可以一個個點選日期控制元件選擇需要的日期,但自動化執行過程中,完全複製手工這樣的操作就有點難了。 2、想法:  

UML 功能(操作)要求規範和應用: 處理NFR(功能需求)的常見錯誤及其糾正方法

處理NFR(非功能需求)的常見錯誤及其糾正方法 常見錯誤 糾正錯誤 舉例 沒有充分注意NFR,因為它們無法在視覺上建模 NFR應被視為功能要求的重要性; 提取NFR的方法是

mavean專案中,mavean管理的第三方jar包處理

通常情況下用mavean打包的時候,對非mavean管理的第三方jar包只需要在pom.xml 里加入如下配置就行了。 <plugin>   <artifactId>maven-compiler-plugin</artifactId>&

為什麼static成員的型別可以是類本身?又為什麼static成員被限定宣告為其自身類物件的指標或引用

提出這兩個問題,源於《C++ Primer》中的一句話:“static 資料成員的型別可以是該成員所屬的類型別。非 static 成員被限定宣告為其自身類物件的指標或引用” 這兩個問題的癥結一眼可以看出,在於static是屬於類而不屬於任何一個物件。但僅拿這句話,想

用父類指標(或引用)指向父類物件和子類物件時,從而用父類指標或者引用訪問成員時的深刻理解;

賦值相容規則永遠不變,父類指標既可以指向父類物件,也可以指向子類物件;當父類指標指向父類物件時,訪問父類的成員;當父類指標指向子類物件時,那麼只能訪問子類中從父類繼承下來的那部分成員;不能訪問子類獨有的

[圖片處理]PHP標準格式的圖片pjpeg上傳失敗的解決辦法

前一陣子網站新上了相簿功能,可最近總髮現有一些使用者上傳的圖片檔案連結失效,程式碼檢查了很多次,測試也做的比較充分了,但還是會出現上傳失敗的問題,很是鬱悶,今天終於找到了解決辦法。     從備份源中找到了使用者上傳失敗的JPG圖片,進行上傳測試,上傳完成後頁面提示:

tensorflow 做多元線性迴歸時怎樣資料型資料(分型別資料)進行處理(編碼)

程式碼如下:def read_data(file_queue):    '''    the function is to get features and label (即樣本特徵和樣本的標籤)    資料來源是csv的檔案,採用tensorflow 自帶的對csv檔案的處

TreeSet自然順序元素的排序

color int pre 關系 pan 添加 ati 比較器 ext /* 1. 往TreeSet添加元素的時候,如果元素本身具備了自然順序的特性,那麽就按照元素自然順序的特性進行排序存儲。 2. 往TreeSet添加元素的時候,如果元素本身不具備自然順序的特

1.1 面向引用與方法引用

out 對象 進行 name static [] 年齡 屬性 面向 public class Demo1 { public static void main(String[] args) { //定義的類需要依靠對象進行操作,給出對象的格式 //類名稱 對象名稱

error:‘vtable for new_sequence’未定義的引用 ‘typeinfo for num_sequence’未定義的引用

() 類繼承 rtu 方案 con ble error: white ons 在設計父類子類繼承關系中,經常會出現此類問題。 報錯原因:父類中的虛函數只有聲明,沒有定義。 解決方案 :   1. 定義相關的虛函數的實現。   2. 不實現了,直接搞成純虛函數留給後代實現。 

c++類 用冒號初始化象(成員初始化列表)

函數 ace end -1 box 技術分享 對象 mage stream c++類 用冒號初始化對象(成員初始化列表) 成員初始化的順序不同於它們在構造函數初始化列表中的順序,而與它們在類定義中的順序相同 #include<iostream> int n=0

象作為成員

++ col 函數名 函數 構造 類名 family track ont 類對象內部嵌套類對象。被嵌套的對象成為內嵌對象。內嵌對象是該類對象的組成部分,當創建該對象時。其內嵌對象也被自己主動創建。 C++中通過構造函數的初始化表為內嵌對象初始化。組合類的帶有初

億豐網絡:知道百度收錄大有裨益的8條外部因素嗎

網絡 百度收錄 外部 百度 收錄 你知道對百度收錄大有裨益的8條外部因素嗎?不知道的話就請停下你那匆忙的腳步,且聽億豐網絡說一說吧: 1、pr/br值的傳遞意味著百度權重的傳遞,這一點始終毋庸置疑,那你還不趕緊去尋找高pr/br值的網站做導入鏈接嗎? 2、你不

面向象-類-成員變量-局部變量-this

人類 允許 static demo 對象信息 邏輯 通過 解封 內部 1、能夠理解面向對象的思想 面向對象是基於面向過程的編程思想,強調的是對象,由對象去調用功能。它是一種更符合人類習慣的編程思想,可以將復雜的事情簡單化,將我們的角色從執行者變成了指揮者。 2、能夠