none
請問物件或函數可以當作參數嗎 RRS feed

解答

  • 小朱泛型是減少方法數.

    但這個方法裡要寫非常多的判斷式去看哪種物件有哪些屬性,方法,模型...

    我喜歡用多型.

    方法名稱不變,輸入參數多型.每個方法裡處理它型別的模型就好了.

    我寧願使用泛型加上型別限制 ... 函數 overload 太多會很難維護。
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年5月12日 上午 08:12
    版主

所有回覆

  • button是物件,本來就能傳

    函數就不行,頂多是傳委派進去

    2011年5月11日 下午 03:49
  • button btn = new buttn();

    a(btn);

    public void a(button tmp)

    {}

    這樣可以嗎?那可以設為能接受任何物件的參數嗎?ex: public void a(object tmp)

    2011年5月12日 上午 12:44
  • ex: public void a(object tmp)

    這樣子當然可以

    只是你程式內部再加個轉型就好了

    例如

    public void a(object tmp)

    {

      Button btn = tmp as Button;

    }

     

    2011年5月12日 上午 12:55
  • 請愛用泛型 ...

    public void a<T>(T tmp)
    {
         // access tmp variable.


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年5月12日 上午 01:07
    版主
  • 小朱泛型是減少方法數.

    但這個方法裡要寫非常多的判斷式去看哪種物件有哪些屬性,方法,模型...

    我喜歡用多型.

    方法名稱不變,輸入參數多型.每個方法裡處理它型別的模型就好了.

     

     

    public void A(Button inp)

    {

    }

    public void A(TextBox inp)

    {

    }

     

    2011年5月12日 上午 03:39
  • 朱大:

    請愛用泛型 ...

    public void a<T>(T tmp)
    {
         // access tmp variable.
    }

    好說:

    小朱泛型是減少方法數.

    但這個方法裡要寫非常多的判斷式去看哪種物件有哪些屬性,方法,模型...

    我喜歡用多型.

    方法名稱不變,輸入參數多型.每個方法裡處理它型別的模型就好了.

     

     

    public void A(Button inp)

    {

    }

    public void A(TextBox inp)

    {

    }

    面對,未知的物件型別該如何判別較適當呢?
    2011年5月12日 上午 07:22
  • 如果是未知的物件型別,那就只能用 object 了,不過你在處理時要注意型別的問題。

    能避免用 object 就要避免,因為會有 boxing/unboxing 的 performance 問題。


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年5月12日 上午 08:11
    版主
  • 小朱泛型是減少方法數.

    但這個方法裡要寫非常多的判斷式去看哪種物件有哪些屬性,方法,模型...

    我喜歡用多型.

    方法名稱不變,輸入參數多型.每個方法裡處理它型別的模型就好了.

    我寧願使用泛型加上型別限制 ... 函數 overload 太多會很難維護。
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年5月12日 上午 08:12
    版主
  • 物件可以當做參數, 函數可以透過delegate包裝成參數, 或是將函數包裝成介面, 再利用介面型態當做參數
    2011年5月13日 下午 02:36
  • 小朱泛型是減少方法數.

    但這個方法裡要寫非常多的判斷式去看哪種物件有哪些屬性,方法,模型...

    我喜歡用多型.

    方法名稱不變,輸入參數多型.每個方法裡處理它型別的模型就好了.

     

     

    public void A(Button inp)

    {

    }

    public void A(TextBox inp)

    {

    }

     

    其實這個叫做多載....不是多型...


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年5月14日 上午 04:59
  • 我想發問者大概也被我們弄糊塗了. 我比較建議他應該先把 C#程式設計的基礎概念讀過一遍. (因為如果以他的發問內容來說, 答案只有兩個字『可以』, 但這『可以』的內涵卻是博大精深)

    例如:

    MSDN 文件庫中的

    [C# 程式設計手冊]

    [C# 參考]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年5月16日 上午 05:37
    版主