A Comparative Overview of C#
Author: Ben Albahari
Date: Released 31 July 2000, updated 10 August 2000.
Acknowledgements (alphabetically): Don Box, C.R. Manning, Joe Nalewabau, John Osborn, Thomas Rhode & Daryl Richter for their feedback and support
This article focuses on the new ways of programming C# offers, and how it intends to improve upon its two closest neighbors, Java and C++. C# improves on C++ in a similar way to Java in many respects, so I'm not going to be re-explaining things like the benefits of a single-rooted object hierarchy. This article begins with a brief summary of the similarities between C# and Java, and then goes into exploring the new C# features. You can convert PDF to word if necessary to get a printable view of the article.
Background
In June 2000, Microsoft announced both the .NET platform and a new programming language called C#. C# is a strongly-typed object-oriented language designed to give the optimum blend of simplicity, expressiveness, and performance. The .NET platform is centered around a Common Language Runtime (similar to a JVM) and a set of libraries which can be exploited by a wide variety of languages which are able to work together by all compiling to an intermediate language (IL). C# and .NET are a little symbiotic: some features of C# are there to work well with .NET, and some features of .NET are there to work well with C# (though .NET aims to work well with many languages). Projects created with C# and .NET are usually compatible with most web hosting providers. This article is mostly concerned with C#, but sometimes it is useful to discuss .NET too. The C# language was built with the hindsight of many languages, but most notably Java and C++. It was co-authored by Anders Hejlsberg (who is famous for the design of the Delphi language), and Scott Wiltamuth.
1. C# and Java
Below is a list of features C# and Java share, which are intended to improve on C++. These features are not the focus of this article, but it is very important to be aware of the similarities.
Compiles into machine-independent language-independent code which runs in a managed execution environment.
Garbage Collection coupled with the elimination of pointers (in C# restricted use is permitted within code marked unsafe)
Powerful reflection capabilities
No header files, all code scoped to packages or assemblies, no problems declaring one class before another with circular dependencies
Classes all descend from object and must be allocated on the heap with new keyword
Thread support by putting a lock on objects when entering code marked as locked/synchronized
Interfaces, with multiple-inheritance of interfaces, single inheritance of implementations
Inner classes
No concept of inheriting a class with a specified access level
No global functions or constants, everything belongs to a class
Arrays and strings with lengths built-in and bounds checking
The '.' operator is always used, no more ->, :: operators
null and boolean/bool are keywords
All values are initialized before use
Can't use integers to govern if statements
Try Blocks can have a finally clause
ภาพรวมเปรียบเทียบ C #
เขียน : เบน albahari
วันที่ : ออก 31 กรกฎาคม 2000 ปรับปรุง 10 สิงหาคม 2000
กิตติกรรมประกาศ ( เรียงตามตัวอักษร ) : ไม่มีกล่อง nalewabau C.R . แมนนิ่ง , โจ , จอห์นออสบอร์น โทมัส โรด&ดาริลริกเตอร์สำหรับความคิดเห็นและสนับสนุน
บทความนี้มุ่งเน้นไปที่วิธีการใหม่ของโปรแกรม C #เสนอและวิธีการที่มันตั้งใจที่จะปรับปรุงอันดับเพื่อนบ้าน , Java และ C .C #ปรับปรุง C ในทางที่คล้ายกับ Java ในหลายประการ ดังนั้นผมจะไม่อธิบายสิ่งที่เป็นเหมือนผลประโยชน์ของเดี่ยวฝังวัตถุที่ใหญ่กว่า บทความนี้เริ่มต้นด้วยสรุปสั้น ๆของความคล้ายคลึงกันระหว่าง# C และ Java และจากนั้นไปในการสํารวจใหม่ C #คุณสมบัติ คุณสามารถแปลงไฟล์ PDF เป็น Word ถ้าจำเป็นที่จะได้รับมุมมองที่พิมพ์ของบทความ
พื้นหลังในมิถุนายน 2000 , Microsoft ประกาศทั้ง . NET แพลตฟอร์มและภาษาการเขียนโปรแกรมใหม่ที่เรียกว่า C # . C #เป็นขอพิมพ์เชิงวัตถุภาษาออกแบบมาเพื่อให้ส่วนผสมที่เหมาะสมของความเรียบง่าย ลึกซึ้ง และประสิทธิภาพ .แพลตฟอร์มสุทธิเป็นศูนย์กลางรอบทั่วไปภาษา runtime ( คล้ายกับ JVM ) และชุดของห้องสมุดที่สามารถใช้ประโยชน์จากความหลากหลายของภาษาซึ่งสามารถทำงานร่วมกันได้ โดยรวบรวมเป็นภาษาระดับกลาง ( IL ) C #และ . สุทธิเล็กน้อย symbiotic : คุณลักษณะบางอย่างของ C #มีให้ใช้งานได้ดีกับ . NET , และคุณลักษณะบางอย่างของ . net มีให้ใช้งานได้ดีกับ C # ( แม้ว่าสุทธิมีวัตถุประสงค์ที่จะทำงานได้ดีกับหลายภาษา ) โครงการที่สร้างขึ้นด้วย C และ# สุทธิมักจะเข้ากันได้กับส่วนใหญ่ของเว็บผู้ให้บริการโฮสติ้ง บทความนี้เป็นส่วนใหญ่ที่เกี่ยวข้องกับ C # แต่บางครั้งมันก็เป็นประโยชน์เพื่อหารือเกี่ยวกับ . NET ด้วย C #ภาษาถูกสร้างขึ้นด้วยความเข้าใจถึงปัญหาของหลายภาษา แต่ที่สะดุดตาที่สุด Java และ C .มันร่วมประพันธ์โดย Anders hejlsberg ( ที่มีชื่อเสียงสำหรับการออกแบบของ Delphi ภาษา ) และ สกอตต์ wiltamuth
1 # C และ Java
ด้านล่างเป็นรายการของคุณลักษณะ# C และ Java แบ่งปัน ซึ่งมีวัตถุประสงค์เพื่อปรับปรุงในค . คุณสมบัติเหล่านี้จะไม่เน้นของบทความนี้ แต่มันเป็นสิ่งสำคัญที่จะตระหนักถึงความคล้ายคลึงกัน
รวบรวมลงในเครื่องเป็นภาษาอิสระรหัส ซึ่งอยู่ในการจัดการสิ่งแวดล้อม
เก็บขยะควบคู่กับการขจัดตัวชี้ ( C #จำกัดใช้จะได้รับอนุญาตภายในรหัสเครื่องหมายที่ไม่ปลอดภัย )
ไม่มีความสามารถสะท้อนพลังส่วนหัวของไฟล์ , รหัสทั้งหมดขอบเขตแพ็คเกจหรือประกอบ ไม่มีปัญหาการประกาศคลาสหนึ่งก่อนที่อื่น ด้วยการอ้างอิงแบบวงกลม
เรียนทั้งหมดลงมาจากวัตถุ และต้องได้รับการจัดสรรในกองกับสนับสนุนหัวข้อคำหลัก
ใหม่โดยใส่ล็อคบนวัตถุ เมื่อป้อนรหัสเครื่องหมายเป็นล็อค / ตรงกัน
การเชื่อมต่อกับมรดกของมรดกหลายอินเตอร์เฟซเดียวของการใช้งานภายในชั้นเรียน
แนวคิดของการสืบทอดคลาสกับที่กำหนดระดับการเข้าถึง
ไม่มีหน้าที่ ) หรือค่าคงที่ทุกอย่างที่เป็นของชั้น
อาร์เรย์และสตริงที่มีความยาวและในขอบเขตการตรวจสอบ
' ' ผู้ประกอบการมักใช้ไม่เกิน - > : : ผู้ประกอบการบูลีน /
ว่างและบูลเป็นคำหลักทั้งหมดจะเริ่มต้นก่อนที่จะใช้ค่า
ไม่ใช้จำนวนเต็มหรือถ้างบ
ลองบล็อกสามารถมีครอส ในที่สุด
การแปล กรุณารอสักครู่..