2016-02-29 66 views
-1

我在想,我應該是什麼樣的方法使用哪種方法型式應採用

public class UserProfile { 

    public String GetAsString(){ 
     ... Some Stuff 
     return anyString; 
    } 

    // Or this one 
    public static String GetAsString(UserProfile profile){ 
     ... Some Stuff 
     return anyString; 
    } 
} 

是否有任何性能問題,或者什麼,我應該使用這些方法之一?

謝謝你幫我

+3

請在C#中使用正確的駱駝符號GetAsString()。這不是Java。 – marco

+0

檢查此靜態與非靜態答案:http://stackoverflow.com/questions/790281/resharper-complains-when-method-can-be-static-but-isnt – andreasnico

+1

@marco或JavaScript ..... .. –

回答

0

在像C#的面嚮對象語言的首要選擇應該是始終實例成員超過靜態成員

靜態成員...

  • ...沒有實例的一部分。
  • ...不能是多態(即virtual)。
  • ...無法訪問實例成員。所以,如果僅僅因爲性能問題(儘管實例成員可以訪問靜態成員...),您認爲可以混合使用靜態成員和實例成員,那麼它就是全部或全部。

其實,用靜態在軟件架構方面的主要問題是他們把班逼到模塊或功能,而不是考慮類作爲對象的原型容器。

靜好實現工廠方法,常量,單身人士和一些其他的要求,但他們不應該被視爲一種替代純面向對象編程本身

相關問題