成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

#1: Virtual 方法

C#:方法默認是非虛方法

Java:方法默認是虛方法

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

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

  1. public class Dimensions  
  2. {  
  3.     public const double pi = Math.PI;  
  4.     protected double x, y;  
  5.     public Dimensions()  
  6.     {  
  7.     }  
  8.     public Dimensions (double x, double y)  
  9.     {  
  10.         this.x = x;  
  11.         this.y = y;  
  12.     }  
  13.  
  14.     public virtual double Area()  
  15.     {  
  16.         return x*y;  
  17.     }  

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

  1. public class Circle: Dimensions  
  2. {  
  3.     public Circle(double r): base(r, 0)  
  4.     {  
  5.     }  
  6.  
  7.     public override double Area()  
  8.     {  
  9.         return pi * x * x;  
  10.     }  

#2: Generator 方法

C#:支持generator方法

Java:不支持generator方法  

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

  1. public class TexasCityCollection : IEnumerable<string> {  
  2.     public IEnumerator<string> GetEnumerator() {  
  3.         yield return "Houston";  
  4.         yield return "Auston";  
  5.         yield return "Dallas";  
  6.         yield return "San Antonio";  
  7.     }  

#3: Partial 方法

C#:支持并限制分部方法

Java:不支持分部方法

Java不支持分部方法。在C#中,分部方法是允許的,但必須符合特定的限制:   

  • 分部方法方法名必須相同?! ?/li>
  • 分部方法必須返回void。  
  • 分部方法默認是“private”,而且不接受任何修飾符。

#4: Extension 方法

C#:支持擴展方法

Java:不支持擴展方法

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

#5: Conditional 條件編譯

C#:支持條件編譯

Java:有限的支持條件編譯

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

原文鏈接:http://www.oschina.net/question/157182_56839

責任編輯:林師授 來源: OSCHINA
相關推薦

2009-08-20 17:30:02

C#連接字符串

2010-09-02 10:15:46

SQL刪除

2009-08-12 14:59:09

C#和Java不同點

2010-02-23 14:24:50

WCF狀態保存

2020-04-24 16:09:57

UbuntuLinux內核

2020-04-20 14:30:54

UbuntuLinux內核

2023-01-03 07:49:45

Java隨機數線程

2010-02-04 15:41:10

C++內存管理

2009-08-20 10:39:00

Java與C#的不同之

2020-04-21 17:04:12

JavaScriptHTTP請求開發

2010-02-04 10:13:35

C++獲得系統時間

2021-12-25 23:17:52

Windows 11Windows微軟

2010-02-05 10:30:02

C++操作符重載

2015-07-08 16:07:19

iOSObjective-C

2009-08-21 10:28:21

C#異步方法C#同步方法

2012-12-13 10:32:34

路由器線路輸出

2019-09-26 08:07:06

RHEL8命令Linux

2010-01-18 11:05:24

C++

2010-08-13 09:35:08

C#靜態

2009-09-04 15:57:49

C#實現漢字之間互換
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久精品国产一区二区三区 | 久久久久91 | 激情五月婷婷丁香 | 久久9久| av三级在线观看 | 在线观看免费福利 | 中文二区 | 毛片入口 | 九色.com| 国产激情一区二区三区 | 蜜桃av一区二区三区 | 日韩一二三区 | 日韩av免费在线观看 | 欧美最猛黑人xxxx黑人 | 97国产爽爽爽久久久 | 国产高清在线精品一区二区三区 | 久久久久久久亚洲精品 | 暖暖成人免费视频 | 九九久久精品 | 日韩一级电影免费观看 | 91精品一区 | 日韩中文字幕一区 | 国产成人精品一区二区三区视频 | 亚洲日韩中文字幕一区 | 91国内产香蕉| 亚洲成人一区二区在线 | 国产精品高潮呻吟久久aⅴ码 | 国产精品自在线 | 久久毛片 | 精品91av| 久久综合一区 | 亚洲久久一区 | 欧美成人精品欧美一级 | 97国产精品 | 国产三级日本三级 | 欧美久久影院 | 青青草一区二区 | 在线成人精品视频 | 国产精品高潮呻吟久久aⅴ码 | 日韩成人av在线 | 久久久亚洲一区 |