5個 C# 和 Java 之間的不同方法

openkk 12年前發布 | 13K 次閱讀 C# Java開發

C#和Java之間最大的區別之一,是如何處理的方法。在這兩種語言,方法是功能代碼的基石:他們定義變量,并指定對這些變量進行操作,返回值給其他方法使用。盡管Java語言的創建者遵循了許多基于C語言的概念,他們研發的方法允許更少的限制和增加更多的靈活性。

#1: Virtual 方法
C#:方法默認是非虛方法
Java:方法默認是虛方法
虛方法允許任何類繼承,并重寫其方法。在Java中,所有方法默認是虛方法。此默認設置防止插入的一個與繼承類同名的不相關的方法。

在C#中,開發人員必須明確指定帶“virtual”關鍵字的虛方法:

public class Dimensions
{
    public const double pi = Math.PI;
    protected double x, y;
    public Dimensions()
    {
    }
    public Dimensions (double x, double y)
    {
        this.x = x;
        this.y = y;
    }

    public virtual double Area()     {         return x*y;     } }</pre>

繼承類要使用虛方法,該方法必須加上“override”關鍵字:

public class Circle: Dimensions
{
    public Circle(double r): base(r, 0)
    {
    }

    public override double Area()     {         return pi x x;     } }</pre>


#2: Generator 方法
C#:支持generator方法
Java:不支持generator方法  
generator方法允許開發人員控制如何循環處理每一次迭代。而不是創建一個組,generator方法返回每次迭代后的值作為循環過程的代碼。Java沒有內置處理generator方法的功能,假設在Java中有這些功能代碼,往往也是龐大而復雜的。C#使用“IEnumerable”接口創建generator函數和“yield”命令返回值:

public class TexasCityCollection : IEnumerable<string> {
    public IEnumerator<string> GetEnumerator() {
        yield return "Houston";
        yield return "Auston";
        yield return "Dallas";
        yield return "San Antonio";
    }
}


3: Partial 方法</span>

C#:支持并限制分部方法
Java:不支持分部方法
Java不支持分部方法。在C#中,分部方法是允許的,但必須符合特定的限制:   
  · 分部方法方法名必須相同。  
  · 分部方法必須返回void。  
  · 分部方法默認是“private”,而且不接受任何修飾符。


#4: Extension 方法
C#:支持擴展方法
Java:不支持擴展方法
擴展方法允許開發人員包括他們當前類型的方法,而不需要創建一個新類型或者修改現有的類型。當前的Java語言不支持擴展方法,但是其特性會考慮放在將來的版本中。


#5: Conditional 條件編譯
C#:支持條件編譯
Java:有限的支持條件編譯
C#編譯器允許條件編譯:開發者可以輸入參數來確定項目編譯哪些方法來使用。Java也允許條件編譯,但這種做法通常是在調試過程中使用。





原英文鏈接 , OSChina.NET編譯

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!