關(guān)于靜態(tài)方法、變量和非靜態(tài)方法、變量的區(qū)別,園里的大神早就有了許多詳細(xì)的總結(jié),個(gè)人覺(jué)得靜態(tài)方法、變量與非靜態(tài)方法、變量的區(qū)別可以總結(jié)為以下兩句話(huà):
靜態(tài)的是屬于類(lèi)的
非靜態(tài)是屬于對(duì)象的
就是說(shuō)調(diào)用靜態(tài)方法和變量時(shí)可以直接使用ClassName.StaticMethod();調(diào)用非靜態(tài)方法和變量只能先創(chuàng)建一個(gè)類(lèi)的實(shí)例ClassName instance = new CalssName();,之后再進(jìn)行調(diào)用instance.Method();
但是很多人所說(shuō)的靜態(tài)方法只能訪(fǎng)問(wèn)類(lèi)中的靜態(tài)方法和變量,自己有很大的疑問(wèn):
static void Main(string[] args) { Test test = new Test(); test.PRintInNotStatic(); } class Test { public static void PrintInStatic() { Console.WriteLine("this is in the static method"); } public void PrintInNotStatic() { Console.WriteLine("this is in the not static method"); } }
我這里不是調(diào)用了非靜態(tài)方法了嗎?是怎么回事呢?
經(jīng)過(guò)自己的查閱資料和思考:發(fā)現(xiàn)自己原來(lái)跳入了一個(gè)坑,沒(méi)有注意到靜態(tài)方法只能訪(fǎng)問(wèn)類(lèi)中的靜態(tài)方法和變量這句話(huà)中類(lèi)中的靜態(tài)成員。
我上面代碼中是創(chuàng)建了一個(gè)對(duì)象,然后通過(guò)對(duì)象調(diào)用了這個(gè)方法,而不是用類(lèi)直接調(diào)用方法。只要理解了類(lèi)和對(duì)象的區(qū)別就很容易能夠理解這句話(huà)的意思了。
記錄下自己的這個(gè)疑問(wèn),希望對(duì)有此疑問(wèn)的園友有所幫助。
本文屬于新手帖,有錯(cuò)誤的地方請(qǐng)大神多多指教。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注