c如何呼叫同一類下其它非靜態方法中的引數,或者直接引用引數

2021-03-24 02:14:24 字數 3900 閱讀 4287

1樓:彎冬掰不直

這種情況是沒法呼叫的,不同的變數都有它的作用域,方法引數的作用版域只在方法的權

內部。如果想要在其他方法中引用其他方法的引數,可以在類內新增一個變數來儲存這個值,然後在另一個方法中引用這個值。

static void main(string args)private string param;

public void fun1(string param)public void fun2()

c#如何呼叫同一類中的其他方法中的引數?麻煩大神講解。

2樓:帥小夥兒雙魚

如果是靜態方法的話 直接類名.方法名就可以

普通的方法 就例項化 該類 然後例項名.方法名

c#中的同一個類非靜態方法為什麼可以直接呼叫其他非靜態方法而不需要new一下例項?

3樓:碧野花香四溢

你說的前提是調非靜態方法,那這個方法必須屬於一個具體的物件,假設main方法調,不論這個main方法是在同一個類裡,還是另一個類裡,呼叫前都需要new一次,第一次用物件名來調,第二次還是用物件名來調 ,不用再new。如果重複new,那是脫了褲子打屁,不是和前面的new一樣嗎,何必重複寫一句!!如果是調靜態方法,它不屬於物件,又分兩種情況來呼叫:

第一種,在同一個類裡直接寫:方法名()就可以了,前面不用加類名或物件名;第二種,main在b類裡,呼叫a類的方法,用類名來調啊,要寫成:a類名.

方法名()。如果你連靜態和非靜態都不懂,我寫這麼多相當於對牛彈琴了!

4樓:匿名使用者

你覺得左手去呼叫右手, 需要重新創造一個人再去呼叫右手嗎?

c#怎麼在別的類中呼叫其他類中帶引數的方法

5樓:

// class1呼叫

int result=class2.getresultset(getsql***mand(sql,class2.getmysqlcon()));

// 修改函式如下

public static int getresultset(mysql***mand mysql***mand)

6樓:匿名使用者

getresultset需要mysql***mand 引數

7樓:但星辰汲闊

一般是傳參方式傳過去,而不會直接在類中去呼叫,你在類中去呼叫其他窗體的引數,對於高內聚低耦合來說你就違背這個原則。

c#利用委託呼叫類中的非靜態方法怎樣才能讓方法中的內容輸出

8樓:匿名使用者

在c#中,委託是一種型別,屬於引用型別,委託的關鍵字是delegate,委託的定義和類的定義一樣,所以凡是能定義類的地方也是可以定義委託的,public delegate void mydelegate();這個定義了一個無返回值,無參的委託型別,那麼下面來通過委託編寫一段**:

例項 1 : 委託的基本組成

class program

public static void mymethod()

}上述的**是可以直接進行執行的,在上述**中,首先宣告瞭一個委託 mydelegate, 它是無返回值,無引數的 ,同時還建立了一個方法mymethod(), 這個方法也是 無返回值,無引數的。

靜態方法和例項方法的區別 「靜態方法都是通過關鍵字static來定義的,靜態方法不需要例項這個物件就可以通過類名來訪問這個物件。在靜態方法中不能直接訪問類中的非靜態成員。而用例項方法則需要通過具體的例項物件來呼叫,並且可以訪問例項物件中的任何成員」, 來通過一個例項來了解

public delegate void mypersondelegate(string name);

static void main(string args)

class person

}class personintance

}在上述**中,首先定義了一個委託mypersondelegate,它是無返回值,並且需要一個string型別的引數型別(在這裡說一點,委託是可以進行協變和逆變的,具體請參考.***可變性解析(協變和逆變)),然後分別定義了兩個類person和personinstance 其中person中宣告瞭一個getpersonnam的靜態方法,personintance類中宣告瞭一個getpersonname的例項方法,在主函式main中,分別進行呼叫.在執行的時候,會發現委託的例項後跟一個引數,這個引數其實就是方法的引數,因為所定義的委託要求的是一個執行一個無返回值,有一個string型別的引數的方法

9樓:陽光的雷咩咩

你把委託、普通類、事件混淆了,普通委託一般不用+=形式的,還有你的各種名稱可以改進下,一看都是max,仔細看才知道有大小寫等等區別。

10樓:匿名使用者

簡單來說你只是宣告瞭委託並搭載了幾個方法,根本就沒有執行,所以當然不會有結果,簡單的呼叫比如

max = new max(md.max);//為啥不顯示輸出結果呢?

max += new max(md.min);//為啥不顯示輸出結果呢?

max.invoke();//執行所有搭載方法

當然也可以更簡單比如

max = new max(md.max);//為啥不顯示輸出結果呢?

max();

11樓:放星星的

倒數第三行加上max();

多播委託 這個委託指向了兩個函式,執行委託直接去全執行了,你沒執行他們為什麼輸出??

12樓:匿名使用者

不執行怎麼輸出啊,笨

c# 靜態方法不能直接呼叫非靜態成員,請問哪位高手知道如何間接呼叫非靜態成員呢?

13樓:匿名使用者

class a

public void g()//非靜態 }一般情況f()不能呼叫g(),但是你可以增加一個靜態成員class a

public void g()//非靜態 }

14樓:匿名使用者

建立一個例項,通過例項訪問,只能這樣

15樓:匿名使用者

class a

}//呼叫

a a = new a();

a.f();

c# 泛型方法中,如何呼叫 類 引數中的 靜態方法

16樓:一無安慰

很明顯,你的函式要抄做的是一個把弱型別的datatable對映到強型別list的orm功能,但getentitybydatarow這個對映函式根本不應該定義到t中,你可以單獨寫一個靜態類,裡面使用反射技術,完成反射就可以了。

17樓:匿名使用者

既然在同類中,直接寫方法名不行麼?

18樓:匿名使用者

試試last.add(((dynamic)t).getentitybydatarow(dr));

19樓:匿名使用者

list.add(類名.getentitybydatarow(dr));

簡述c#中方法的值引數,引用引數和輸出引數

20樓:log琥珀

引用引數是說ref吧,輸出引數是說out吧都是為了能讓方法多返回一個值

如 ref的引數要求使

用前一定要初始化,在方法中改變後,這種改變會保留,相當於多了一個返回值

out引數要求使用前一定要出事話,但是在方法內部要對該引數重新初始化,再使用,也就是說,外部的初始化對內部沒有影響。out引數會保留在內部方法做出的改變

值引數,就是傳遞的值的拷貝啊內部對該值做的任何改變不會保留到外部

袋鼠蜘蛛螞蟻是不是同一類,蜘蛛,螞蟻,蠶是一類動物嗎 為什麼

螞蟻,為節肢動物門昆蟲綱生物螞蟻類的統稱,屬於昆蟲 蠶,為節肢動物門昆蟲綱生物家蠶的俗稱,屬於昆蟲 蜘蛛,為節肢動物門蛛形綱蜘蛛目生物的統稱,不屬於昆蟲 由於蜘蛛並不是一種生物,而是蜘蛛目所有生物的統稱,所以,在這個單一物種判斷的題目裡面出現是錯誤的,嚴格來說,這是出題錯誤 蝦,為節肢動物門甲殼綱十...

C中如何呼叫靜態類中的建構函式

靜態建構函式既沒有訪問修飾符,也沒有引數。如果沒有編寫靜態建構函式,而這時類中包含帶有初始值設定的靜態欄位,那麼編譯器會自動生成預設的靜態建構函式。在建立第一個類例項或任何靜態成員被引用時,net將自動呼叫靜態建構函式來初始化類,也就是說我們無法直接呼叫靜態建構函式,也就無法控制什麼時候執行靜態建構...

C中如何在類中呼叫另類中的資料,C 中 如何在一個類中 呼叫另一個類中的資料?

c 窗體間傳遞資料有好多種方法,說下個簡單的 在要呼叫的窗體中新增被呼叫窗體欄位,構造方法中傳入被呼叫的窗體做引數,將被呼叫窗體的需要被呼叫的資料的訪問修飾符設定為 public 將form1的 listbox 的訪問修飾符設定為 public這樣就可以通過欄位.屬性 呼叫被呼叫窗體的資料了 pub...