C# 與java區別總結 收集

節選自《C++、Java/C#之比較》http://dev.firnow.com/course/3_program/c++/cppsl/2008520/117228.html
使用指針,由程序員根據需要分配、訪問內存,程序運行時動作明確直接沒有額外的處理步驟,程序的執行效率就高,但若程序員忘了釋放內存或釋放內存的策略不夠周全,就會產生不可預知的問題,而且這種問題往往是比較嚴重。 
不使用指針,并不意味著內存的分配、訪問與釋放不須處理,只不過是這些工作由編譯器生成的通用“內存管理器”完成了,因此程序執行時,必須增加額外的內存管理動作,所以執行效率相對上種方式而言有所下降。由于“內存管理器”的運作是基于業內專業人士制定的比較完善內存管理機制,因而安全程度較高。但實際上,由于內存的分配、訪問、使用、釋放的情況比較復雜,這種安全性并不是100%的。也就是說安全的保證是由“另外的人”負責的,這種情況下,一旦出現問題,你無法查清問題所在,或即使你查清問題所在,也無法糾正。 
好了,關于指針,一邊是100%的效率、60%的安全性、100%的自由,一邊是60%的效率、99%的安全性、100%枷鎖,你選擇吧。我想對于“高手”而言,自信也罷、固執也罷,選擇指針是他們骨子里自由與冒險精神的決定。 
“是生,是死——這是一個值得考慮的問題。”——但不要喪失了行動的能力。 下文引自《Java與C#的區別(語言級別)》http://wantsong.javaeye.com/blog/28769Java與C#的區別(語言級別)
可以到這里詳細了解Java與C#的區別,The C# Programming Language for Java Developers。 我將其整理了下,大致列在下面: 1.         源文件方面。C#可以在一個.cs 文件中。出現多個name sapce(命名空間,有些類似于pacakage),并定義多個類。C#包含有預處理指令。 2.         數據類型方面。 a)         C#定義了struct(結構),不能是抽象的,也不能被繼承,是值類型的。 b)        C#沒有基本類型的概念,全部是面向對象的類型,int是Int32的簡寫。 c)        在Java中const是保留字,final與C#中的const意思相同,C#中還有readonly允許運行時賦初值。 d)        字符串比較,C#中可以用=比較值,與Java一樣用StringBuffer來減少內存開銷。 3.        運算符方面。C#增加了Checked和Unchecked以繞過編譯錯誤。比如“把一個long付給int32 ,如果高32為零 則不會出錯,否則會有溢出錯誤,unchekced就是告訴編譯器不要去管溢出,盡你可能轉化” 4.        分支語句方面。在Java中goto是保留字。C#中switch中的case不會順序執行,末尾必須有break或者goto關鍵字。 5.        循環語句好像沒有什么不同的。 6.        訪問修飾符方面。在范圍放main,C#增加了internal和protected internal,前者表示只能從當前程序集內可見,即可以在編譯時可Assembly的DLL或EXE,類似于JAR;后者表示對當前程序集或者從此包含類繼承的類可見。Sealed相當于Java中的final關鍵字。 7.        方法方面。與Java相同,只有基本類型通過值傳遞,其他都是傳遞引用。不過C#也可以以引用的方式傳遞基本類型,利用ref關鍵字。而out關鍵字有些類似于Oracle存儲過程,與ref的區別在于:方法忽略out參數初始值,方法必須為out參數賦值。 8.        屬性方面。Getter和Setter的寫法不太一樣。 9.        繼承方面。C#增加了base關鍵字以指向父類。C#中父類方法中具有virtual關鍵字的才可以被子類重寫,重寫時還需要聲明override。與抽象類相同,abstract關鍵字也必須被override重寫。C#中的接口不能聲明常量,接口的屬性只是表示Getter或Setter。 10.     事件。Java中沒有(Java通過實現自定義偵聽器類執行事件)。C#定義了類似于函數指針的委托來實現事件。 11.     運算符重載。Java中無。運算符重載必須為類的靜態方法,重載==,其他判等操作也必許重載。 12.     異常方面。與Java非常相似,只是沒有throws關鍵字,無須截獲異常(當然要在程序主入口去截)。 13.     C#增加了索引器,可以象訪問數組一樣訪問類或結構。個人感覺就是少些幾個字而已,還造成一定的困擾。 14.     C#的Attribute要比Java的Annotation強很多。不過加上AOP后,這種動態功能Java也不錯了。 15.     在C#中也可以直接使用指針,開辟或者回收內存,只是要使用兩個關鍵字unsafe和fixed。引用自《c#,C++,Java比較》http://read.newbooks.com.cn/info/137063.html
1:純對象導向語言
C# 和 java 都是純對象導向語言,C++ 非純對象導向語言。2:強制型態檢查
C# 和 java 都強制進行型態檢查,C++ 則較寬松。3:宏
C# 和 java 都不支持宏,C++ 支持宏。4:Template
C# 和 java 都不支持 template,C++ 支持 template。5:多重繼承
C# 和 java 都不支持多重繼承,且都支持 interface,C++ 支持多重繼承。6:指針 
C# 和 java 都不支持指針,C++ 支持指針。(不過,C# 允許在 unsafe code 內使用指針)7:內存管理 
C# 和 java 都支持垃圾收集。C++ 不支持垃圾收集。8:虛擬機器 
C# 和 java 都需要虛擬機器,C++ 不需要虛擬機器。Java 的執行檔是中間碼,叫做 bytecode,透過 java Runtime Environment(即 JRE)來執行;C# 的執行檔也是中間碼,叫做 managed code,透過 NGWS Runtime 來執行。除了 java,你也可以用其它程序語言(例如 Ada、Python)來作出 bytecode。除了 C#,你也可以用其它程序語言(例如 Visual Basic、C++)來作出 managed code。9:Namespace
C# 和 java 都支持階層式的 namespace,但 C++ 只支持單層的 namespace。Java 的 namespace 稱為 package,C# 的 namespace 就稱為 namespace。Java 和 C# 都使用「.」當作 namespace 的符號,而 C++ 使用「::」。10:Platform-Independent Type
C# 和 java 都使用 Platform-Independent Type,C++ 的 type 會受到平臺的影響。11:使用 Wrapper 包裝基本型態
C# 和 java 都支持將基本型態包裝成對象,在 java 叫做 wrapper,在 C# 則是叫做 box。12:boolean != integer
C# 和 java 都不允許把整數當布爾值用,C++ 則允許。13:access modifier
C# 和 java 都支持四種等級的 access modifier,包括 publicprotectedprivatedefault/internal;C++ 只支持 publicprotectedprivate。Java 的 default(不寫)指的就是只針對同一個 package 開放,正好就是 C# 的 internal。14:變量初始化
C# 和 java 都規定不可使用未初始化的變量,C++ 則完全沒有這方面的限制。Java 和 C# 的編譯器都會主動幫未初始化的 field/data member 設定初始值,C++ 則不然。15:轉型
C# 和 java 都規定基本型態和 reference 型態不能互轉。16:數組邊界檢查
C# 和 java 都會主動進行數組邊界檢查,C++ 則不然17:呼叫 Native Code
C# 和 java 都支持呼叫 native code。Java 透過 JNI(Java Native Interface);C# 透過 PInvoke(Platform Invocation Service)18:Metadata
C# 和 java 的中間碼都包含有類別的 metadata,而 C 語言則是獨立在 header file。19:中間碼指令
C# 的 IL 中間碼指令和 java 的 bytecode 指令非常類似,有的甚至一樣。20:例外處理
C# 和 java 都支持 try/catch/finally,但 C++ 只支持 try/catch。 較細節,出處未知
c#與java的區別
1.屬性: java中定義和訪問均要用get和set方法,可以不成對出現。 c#中是真正的屬性,定義時get和set必須同時出現,房問時用.號即可。不用get,set 
2.對象索引 就是對象數組 public Story this [int index]
3.C#中,不用任何范圍修飾符時,默認的是protect,因而不能在類外被訪問. 
4.因為JAVA規定,在一個文件中只能有一個public類,而且這個類的名稱必須與文件名一模一樣,這是一個區別 
5.在C#中,它是以Main方法來定位入口的.如果一個程序中沒有一個名為Main的方法,就會出"找不到入口的錯誤".不要把Main寫成main喲 
6.C#預定義的簡單數據類型比Java多。例如,C#有unit,即無符號整數 
7.忘掉Java中的static final修飾符。在C#中,常量可以用const關鍵詞聲明 C#的設計者還增加了readonly關鍵詞,readonly域只能通過初始化器或類的構造函數設置 
8.公用類的入口點:c#是可以對Main進行重載(java中是main),允許有int返回值和空參數的Main 
9.在Java中,switch語句只能處理整數。但C#中的switch語句不同,它還能夠處理字符變量。請考慮下面用switch語句處理字符串變量的C#代碼 
10.C#沒有>>>移位操作符 
11.goto關鍵詞: Java不用goto關鍵詞。在C#中,goto允許你轉到指定的標簽。不過,C#以特別謹慎的態度對待goto,比如它不允許goto轉入到語句塊的內部。在Java中,你可以用帶標簽的語句加上break或continue取代C#中的goto。 
12.int[] x = { 0, 1, 2, 3 }; int x[] = { 0, 1, 2, 3 }; 但在C#中,只有第一行代碼合法,[]不能放到變量名字之后。 
13.與Java不同的是,C#允許為名稱空間或者名稱空間中的類指定別名: using TheConsole = System.Console; 
14.在Java中,包的名字同時也是實際存在的實體,它決定了放置.java文件的目錄結構。在C#中,物理的包和邏輯的名稱之間是完全分離的 .NET中包的實體稱為程序集(Assembly)。每一個程序集包含一個manifest結構。manifest列舉程序集所包含的文件,控制哪些類型和資源被顯露到程序集之外,并把對這些類型和資源的引用映射到包含這些類型與資源的文件。程序集是自包含的,一個程序集可以放置到單一的文件之內,也可以分割成多個文件。.NET的這種封裝機制解決了DLL文件所面臨的問題,即臭名昭著的DLL Hell問題。 
15.在Java中,java.lang包是默認的包,C#中不存在默認的包 
16.C#中的訪問修飾符與Java中的基本對應,但多出了一個internal。簡而言之,C#有5種類型的可訪問性,如下所示: public:成員可以從任何代碼訪問。 protected:成員只能從派生類訪問。 internal:成員只能從同一程序集的內部訪問。 protected internal:成員只能從同一程序集內的派生類訪問。 private:成員只能在當前類的內部訪問。 
17.由于C#中不存在final關鍵詞,如果想要某個類不再被派生,你可以使用sealed關鍵詞 
18.與Java不同,C#中的接口不能包含域(Field)。 另外還要注意,在C#中,接口內的所有方法默認都是公用方法。在Java中,方法聲明可以帶有public修飾符(即使這并非必要),但在C#中,顯式為接口的方法指定public修飾符是非法的。例如,下面的C#接口將產生一個編譯錯誤。 
19.C#中的is操作符與Java中的instanceof操作符一樣,兩者都可以用來測試某個對象的實例是否屬于特定的類型。在Java中沒有與C#中的as操作符等價的操作符。as操作符與is操作符非常相似,但它更富有“進取心”:如果類型正確的話,as操作符會嘗試把被測試的對象引用轉換成目標類型;否則,它把變量引用設置成null。 
20.C#仍舊保留了C++的內存手工管理方法,它適合在速度極端重要的場合使用,而在Java中這是不允許的
21.在C#中,所有的異常都從一個名為Exception的類派生 
22.枚舉器即enum類型(java無),把它作為一個變量值的類型使用,從而把變量可能的取值范圍限制為枚舉器中出現的值。 
23.結構(Struct)與類很相似,而結構是一種值類型,它存儲在棧中或者是嵌入式的,結構可以實現接口,可以象類一樣擁有成員,但結構不支持繼承 
24.屬性聲明語法的第一部分與域聲明很相似,第二部分包括一個set過程和/或一個get過程 
25.傳值方式: 在java中簡單數據類型的值傳參時,都以傳值方式; 在c#中如果加ref則會以引用的方式傳值(方法內部改變該參數,則外部變量一起跟著變); 加out與ref基本相同,但out不要求參數一定要初始化. 
26.c#保留了指針。unsafe 
27.代理:代理(delegate)可以看作C++或者其他語言中的函數指針 代理用來封裝可調用方法。你可以在類里面編寫方法并在該方法上創建代理,此后這個代理就可以被傳遞到第二個方法。這樣,第二個方法就可以調用第一個方法。 代理是從公共基類System.Delegate派生的引用類型。定義和使用代理包括三個步驟:聲明,創建實例,調用。代理用delegate聲明語法聲明。更細致的
C#與JAVA之比較(作者Yesky)
C#、Java之比較 很多人說C#是微軟用來和Java抗衡的武器,因為二者在很大程度上有著驚人的相似 
,盡管如此,兩者不同的地方也很多,所謂“于細微處見差異”。那么兩者的相似和區 
別都在什么地方呢?我們從今天開始,會從各個角度來對比C#和Java的特點,希望能對 
正在學習、使用C#的朋友有所幫助。 
1、C#和.NET平臺的概貌 2000年6月,微軟發布C#語言和.NET平臺。C#語言是一種強類型的,面向對象的語言 
,它具有語法簡單、表達力強的特點,而.NET平臺則是構成微軟的“.NET計劃”的基石 
。 .NET平臺的核心包括兩方面,一方面就是著名的通用語言運行機(Common Language 
Runtime),雖然這個名詞起得晦澀了點,不過大家可以拿它和Java的虛擬機來作比較, 
二者完成的任務大致相同;另一方面就是一大堆通用函數庫,這些庫函數可以被多種語 
言調用,并且通過編譯都產生一種共同的中間語言(Intermediate Language),這種語 
言也可以拿Java的字節碼來類比,雖然完成的方式有些不一樣。 
2、C#和Java 下面簡單地把C#和Java的相似處列出來,雖然在這里我們重點討論的是C#和Java的 
不同點,但是了解一下二者的相同之處也是很有必要的。 二者都編譯成跨平臺的、跨語言的代碼,并且代碼只能在一個受控制的環境中運行 自動回收垃圾內存,并且消除了指針(在C#中可以使用指針,不過必須注明unsafe 
關鍵字) 都不需要頭文件,所有的代碼都被“包(package)”限制在某個范圍內,并且因為沒 
有頭文件,所以消除了類定義的循環依賴 所有的類都是從對象派生出來,并且必須使用New關鍵字分配內存 用對象加鎖的方式來支持多線程 都具有接口(interface)的概念 
內部類 繼承類的時候不會以某種特定的訪問權限來繼承; 沒有全局函數或者常量,一切必須屬于類; 數組或者字符串都自帶長度計算和邊界檢查; 只使用“.”操作符,沒有“->”和“::”; “null”、“boolean”和“bool”成為了關鍵字; 任何變量均在使用前進行初始化; 不能使用整數來返回到if條件語句中,必須使用布爾值; “Try”模塊后可以有“finally” ;3. 屬性(Property) 屬性的概念對大家來說應該是很熟悉的,類成員函數可以自由地訪問本類中的任何 
屬性成員。不過若要從一個類中去訪問另一個類中的屬性,那就比較麻煩了,所以很多 
時候我們使用Getxxx和Setxxx方法,這樣看起來顯得極不自然,比如用Java或者C++,代 
碼是這樣的: foo.setSize (getSize () + 1); label.getFont().setBold (true); 但是,在C#中,這樣的方法被“屬性化”了。同樣的代碼,在C#就變成了: foo.size++; label.font.bold = true; 可以看出來,C#顯然更容易閱讀和理解。我們從這個“屬性方法”的子程序代碼中 
,也可以看到類似情況: 
Java/C++: 
public int getSize() 
{ return size; 
} 
public void setSize (int value) 
{ size = value; 
} 
C#: 
public int Size 
{ get{return size;} set{size = value;} 
} 為了區分這種屬性化的方法和類的屬性成員,在C#中把屬性成員稱作“域(field)” 
,而“屬性”則成為這種“屬性化的方法”專用的名詞。順便說一句,其實這樣的屬性 
化方法在VB和DELPHI中是經常碰到的,在VB中它也就叫屬性。 另外,在C#中Get和Set必須成對出現,一種屬性不能只有Get而沒有Set(在Java和 
C++中就可以只有Get或者只有Set),C#中這樣做的好處在于便于維護,假如要對某種屬 
性進行修改,就會同時注意Get和Set方法,同時修改,不會改了這個忘了那個。 
4、對象索引機制(Indexer) C#中引入了對象索引機制。說得明白點,對象索引其實就是對象數組。這里和上一 
節中的屬性聯系起來講一下,屬性需要隱藏Get和Set方法,而在索引機制中,各個對象 
的Get或者Set方法是暴露出來的。比如下面的例子就比較清楚地說明了這一點。 
public class Skyscraper 
{ Story[] stories; public Story this [int index] { get { return stories [index]; } set { if (value != null) { stories [index] = value; } } } }5. 指代(Delegate) 指代這個玩意很特別,它有點象指針,但又不完全是,不過大家還是可以把它理解 
為一種類型安全的、面向對象的指針。(什么是類型安全和面向對象就不用講了吧?) 
順便提一句,有很多書上把Delegate翻譯成代理,我覺得這樣翻不夠確切,翻譯成“指 
代”更恰當些,道理上吻合,并且還符合它的本來意思——微軟本來就是用Delegate來 
“取代指針”,所以叫“指代”,呵呵。 說起指代,也許至今Sun還會對它憤憤不已,為什么呢?因為在Sun的標準Java中是 
沒有這個東西的,它是微軟99年發布的MSVJ++6添加的“新特性”。為此,兩家公司吵得 
不亦樂乎,并且還專門在網上寫了大量文章互相攻擊,有興趣的朋友可以去看看(只有 
英文版)。 
http://www.Javasoft.com/docs/white/delegates.html 
http://msdn.microsoft.com/visualj/technical/articles/delegates/truth.asp 話歸正傳,指代有什么特點呢?一個明顯的特點就是它具有了指針的行為,就好象 
從Java又倒回到了C++。在C#中,指代完成的功能大概和C++里面的指針,以及Java中的 
接口相當。但是,指代比起C++的“正宗指針”來又要高明一些,因為它可以同時擁有多 
個方法,相當于C++里面的指針能同時指向多個函數,并且是類型安全的,這一點體現了 
它的“對象”特性;而比起Java的接口來,指代高明的地方在于它能可以不經過內部類 
就調用函數,或者用少量代碼就能調用多種函數,這一點體現了它的“指針”特性。呵 
呵,很有“波粒二象性”的味道吧?指代最重要的應用在于對于事件的處理,下一節我 
們將重點介紹。6、事件(Event) C#對事件是直接支持的(這個特點也是MSVJ所具有的)。當前很多主流程序語言處 
理事件的方式各不相同,Delphi采用的是函數指針(這在Delphi中的術語是“closure” 
)、Java用改編類來實現、VC用WindowsAPI的消息系統,而C#則直接使用delegate和ev 
ent關鍵字來解決這個問題。下面讓我們來看一個例子,例子中會給大家舉出聲明、調用 
和處理事件的全過程。 
//首先是指代的聲明,它定義了喚醒某個函數的事件信號 
public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel) 
; 
//定義一個產生事件的類 
public class Game 
{ // 注意這里使用了event關鍵字 public event ScoreChangeEventHandler ScoreChange; int score; // Score 屬性 public int Score { get { return score; } set { if (score != value) { bool cancel = false; ScoreChange (value, ref cancel); if (! cancel) score = value; } } 
} 
// 處理事件的類 
public class Referee 
{ public Referee (Game game) { // 裁判負責調整比賽中的分數變化 game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange); } // 注意這里的函數是怎樣和ScoreChangeEventHandler的信號對上號的 private void game_ScoreChange (int newScore, ref bool cancel) { if (newScore < 100) System.Console.WriteLine ("Good Score"); else { cancel = true; System.Console.WriteLine ("No Score can be that high!"); } } 
} 
// 主函數類,用于測試上述特性 
public class GameTest 
{ public static void Main () { Game game = new Game (); Referee referee = new Referee (game); game.Score = 70; game.Score = 110; } 
} 在主函數中,我們創建了一個game對象和一個裁判對象,然后我們通過改變比賽分 
數,來觀察裁判對此會有什么響應。 請注意,我們的這個系統中,Game對象是感覺不到裁判對象的存在的,Game對象在 
這里只負責產生事件,至于有誰會來傾聽這個事件,并為之作出反應,Game對象是不作 
任何表態的。 我們注意到,在裁判類的Referee函數中,Game.ScoreChange后面使用了+=和-=操作 
符,這是什么意思呢?回到我們定義ScoreChange的地方,可以發現ScoreChange是用ev 
ent關鍵字修飾的,那么這里的意思就很明白了:ScoreChange是一個事件,而事件被觸 
發后需要相應的事件處理機制,+=/-=就是為這個事件增加/移除相對應的事件處理程序 
,而且,并不是一個事件只能對應一個處理程序,我們還可以用這兩個操作符為同一事 
件增加/移除數個事件處理程序。怎么樣?很方便吧! 在實際應用中,和我們上面講的(競賽-裁判)機制很相近的系統就是圖形用戶界面 
系統了。Game對象可以看作是圖形界面上的小零件,而得分事件就相當于用戶輸入事件 
,而裁判就相當于相應的應用程序,用于處理用戶輸入。 指代機制的首次亮相是在MSVJ里,它是由Anders Hejlsberg發明的,現在又用到了 
C#中。指代用在Java語言中的后果,則直接導致了微軟和Sun之間對類和指針的關系產生 
了大量的爭論和探討。有意思的是,Java的發明者James Gosling非常幽默地稱呼指代的 
發明者Anders Hejlsberg為“‘函數指針’先生”,因為Anders Hejlsberg總是想方設 
法地把指針變相地往各種語言中放;不過有人在看了Java中大量地使用了各種類后,也 
戲稱Java的發明者James Gosling為“‘全都是類’先生”,真是其中滋味,盡在不言中 
啊。

知識點

C#

java

注釋

// /* */ ///文檔注釋

// /* */ /** */文檔注釋

main

Main

main

書名

書名可以與文件名不同

書名與文件名必須相同

string

String string

String

輸出

Console.Write()

Console.WriteLine()

System.out.print 不換行 println

輸入

Console.ReadLine() 結果是字符串

Scanner input=new Scanner(System.in);

int a=input.nextInt() 分類型

變量

先賦值后使用

不可以重復定義變量

包括局部變量

局部變量作用域相同

相同

相同

不包括局部變量

局部變量作用域相同

數據類型

String string

bool

其它的相同 空間大小一樣

float a=31.4f;

String

boolean

一樣

類型轉換

隱式轉換(自動轉換)類型相似由小到大

(類型)值

由字符串轉其它類型

類型.Parse(必須是字符串);

任意類型之間相互轉換

Char a=’0’,int b=a;可以

Int b=48;char a=b;不可以c

Char a=48;不可以

相同

(類型)值

Char

65—A 97-a 48—0

怒我 就氣 死吧

Char a=’0’;

Int b=a; 可以

Int b=48;

Char a=b//不可以

Char c=48//可以

占位符

C#有

if

相同

相同

Switch()

語法相同

Case default里面的break不能省

Switch(java出現的都可以,還可以出現字符串)

語法相同

可以省

Switch只可以判int char

不可以判字符串

Scanner

沒有

Arrays

Array

Arrays

Random

Random rd=new Random()

rd.Next(10);//0-9之間的一個整數

rd.Next(1,10);// 1-10之間的一個整數

相同

rd.nextInt(10);

二維數組

int[,] a=new int[3,4]; 3層樓每層4間

int[][] a=new int[3][4];

???

一維數組

Int[] a;//申請一條街

a=new int[5];//在街上蓋房子

//逐間住人

a[0]=1;a[1]=2;…

//循環查詢

For(int i=0;i<a.Length;i++)

//a[i];

Int[] a=new int[5];//二合一

Int[] a=new int[]{1,2,3,4,5};

Int[] a= {1,2,3,4,5};

Int a[];//錯誤

Int[] a=new int[3]{1,2,3};//正確

Int[] a=new int[4]{1,2,3};//錯誤

Int a[]; 正確

Int[] a=new int[3]{1,2,3};//錯誤

變量命名

$不可以

以字母、下劃線、$打頭,后面還可以出數字

C#

java

String string

String

求長度 Length 屬性

length() 方法

Equals()

equals()

沒有

equalsIgnoreCase()

ToUpper()

toUpperCase()

ToLower()

toLowerCase( )

+

concat() +

Indexof(char string)

indexOf(int String )

lastIndexOf(char string)

lastIndexOf( int String)

String str=”abc123”

Str.Substring(2,3);//c12

String str=”abc123”

Str.substring(2,3);//c

Trim() 去除首尾空格

trim()

Split(char /char[]) 分開

string[] sp = str.Split('-');

foreach (string a in sp)

{

Console.WriteLine(a);

}

沒有

Join(“連接串”,被連接的字符串數組) 連接

str = string.Join(".", sp);

Console.WriteLine(str);

沒有

其它類型轉字符串 其它值.ToString();

Int a

沒有

foreach

?
??
??
??
??

轉載于:https://www.cnblogs.com/OOAbooke/archive/2011/12/06/2277957.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275112.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275112.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275112.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

碎片化學習前端資料分享~

大前端學習&#xff0c;關注這幾個大佬就夠了。他們的文章提供的大前端知識非常完備&#xff0c;也經常推薦大前端面試、個人成長相關的文章&#xff0c;對于你來說&#xff0c;學大前端&#xff0c;關注這些公眾號就夠了。不多說&#xff0c;直接看這些大佬的介紹。&#x1f3…

1、類型和語法——類型

類型&#xff1a;值的內部特征&#xff0c;定義了值的行為&#xff0c;以使其區別于其他值1.1 類型事關強制類型轉換1.2 內置類型七種除對象外&#xff0c;其他統稱為“基本類型”函數是 Object 的一個字類型&#xff08;可調用對象&#xff09;數組也是一個“子類型“1.3 值和…

netflix 工作原理_Netflix如何在屏幕后面工作?

netflix 工作原理Netflix has reported to have over 182 million subscribers worldwide in the first quarter of 2020 (Of course, these numbers don’t include freeloaders like me, who’s family or friends have been generous enough to share their account and pas…

B/S開發中瀏覽器的工具利器

B/S系統的前端瀏覽器性能和標準兼容方面是開發中的一個重要問題&#xff0c;把IE中使用的各種工具整理一下&#xff0c;對于開發中標準、規范檢查等起到一個作用 主要是三個主流的瀏覽器和相關的插件 FireFox Firefox-latest.exe firebug-1.7.3-fx.xpi yslow-3.0.3-fx.xpi 安裝…

你需要的git命令大全來了

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。雖然你可能用圖形化工具…

uitest_您在Swift中的第一個UITest

uitest測試中 (TESTING) 什么是自動UITest&#xff1f; (What Is Automated UITest?) When we speak about testing, we usually think about unit testing. However, there is another kind of test that is extremely powerful and useful in the app world: UITests.當談到…

UltraGrid中實現下拉Grid(UltraDropDown)

昨天提到了如何在Grid的Cell中下拉列表框&#xff0c;今天將演示如何在Grid的Cell中實現下拉Grid&#xff0c;這也是UltraGrid提供的一個很好的特性。 1&#xff0e; 拖放一個Grid到Form中&#xff0c;添加一些Band Column&#xff0c;然后設置Team欄位為DropDown或DropDownLis…

Vue團隊核心成員開發的39行小工具 install-pkg 安裝包,值得一學!

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文倉庫 https:…

人臉識別及對比_沒有“色彩對比可及性的神話”

人臉識別及對比重點 (Top highlight)When you need to work on interfaces, color contrast is a real thing you have to take into account to make it accessible. You have the right to be afraid of losing part of the aesthetics of your beautifully well-designed in…

Entity Framework4.0 (一)概述(EF4 的Database First方法)

Entity Framework4.0(以后簡稱&#xff1a;EF4)&#xff0c;是Microsoft的一款ORM&#xff08;Object-Relation-Mapping&#xff09;框架。同其它ORM&#xff08;如&#xff0c;NHibernate,Hibernate&#xff09;一樣&#xff0c;一是為了使開發人員以操作對象的方式去操作關系…

mysql 相關子查詢使用【主表得數據需要擴展(統計數據依賴與其他表,但是與主表有關聯)】...

2019獨角獸企業重金招聘Python工程師標準>>> SELECT t.building,t.unit,t.room,t.ashcan ,(SELECT COUNT(a.resident_id) from t_address_book a where a.village_id t.village_id AND a.building t.building and a.room t.unit and a.house t.room and…

竟然被尤雨溪點贊了:我給Vue生態貢獻代碼的這一年

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。這篇文章在知乎被尤雨溪…

java版電子商務spring cloud分布式微服務b2b2c社交電商(四)SpringBoot 整合JPA

b2b2c電子商務社交平臺源碼請加企鵝求求&#xff1a;一零三八七七四六二六。JPA全稱Java Persistence API.JPA通過JDK 5.0注解或XML描述對象&#xff0d;關系表的映射關系&#xff0c;并將運行期的實體對象持久化到數據庫中。JPA 的目標之一是制定一個可以由很多供應商實現的AP…

60款很酷的 jQuery 幻燈片演示和下載

jQuery 是一個非常優秀的 JavaScript 框架&#xff0c;使用簡單靈活&#xff0c;同時還有許多成熟的插件可供選擇&#xff0c;它可以幫助你在項目中加入漂亮的效果&#xff0c;其中之一就是幻燈片&#xff0c;一種在有限的網頁空間內展示系列項目時非常好的方法。今天這篇文章要…

流體式布局與響應式布局_將固定像素設計轉換為流體比例布局

流體式布局與響應式布局Responsive web design has been a prime necessity for every enterprise ever since Google announced that responsive, mobile-friendly websites will see a hike in their search engine rank in 2015.自Google宣布響應式&#xff0c;移動友好型網…

怎樣開發一個 Node.js 命令行工具包

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。源碼共讀活動很多都是讀…

redis完全攻略

安裝篇 聲明&#xff1a;以下環境均是在ubuntu下進行 wget http://redis.googlecode.com/files/redis-2.4.4.tar.gztar zxf redis-2.4.4.tar.gz 然后進入目錄后直接make就可以了、如果邇的系統是32位的那么執行 make 32bit 安裝完成后、執行一下make test看是否正常、如果出現“…

印刷報價系統源碼_皇家印刷術-設計系統案例研究

印刷報價系統源碼重點 (Top highlight)Typography. It’s complicated. With Product Design, it’s on every screen. Decisions for a type scale affect literally every aspect of a product. When you’re working with an existing product, defining typography can fee…

Python簡單試題3

1&#xff0c;水仙花數 水仙花數是指一個 3 位數&#xff0c;它的每個位上的數字的 3次冪之和等于它本身 &#xff08;例如&#xff1a;1^3 5^3 3^3 153&#xff09; 代碼如下&#xff1a; 方法一&#xff1a; for i in range(100,1000): # 進行for循環num ia num % 10 # …

React Hooks 完全使用指南

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。React HooksHook 是什么…