1 / 13

C#: Project Cool

Arthur Ketchel II Keith Francisco Chris McInnis. C#: Project Cool. Language Paradigm. Simple, Modern, General Purpose Structured, Imperative, Objected Oriented Designed for Software Component Development Not designed to compete with C on performance or size. JIT compiled.

kara
Download Presentation

C#: Project Cool

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arthur Ketchel II Keith Francisco Chris McInnis C#: Project Cool

  2. Language Paradigm Simple, Modern, General Purpose Structured, Imperative, Objected Oriented Designed for Software Component Development Not designed to compete with C on performance or size. JIT compiled

  3. Historical Context C# was developed by Microsoft. Lead Architect: Anders Hejlsberg Worked on other languages, such as: Delphi Codename of C# was Project Cool Microsoft denies this but there is evidence to prove otherwise in code snippets and file paths. The language received its name from music, as a sharp (#) is a semi-tone above the base note.

  4. C#’s Origin Before creating C#, Microsoft implemented a modified Java environment, called J++. Microsoft was said to have added features in a manner that violated platform neutrality, violating a license agreement that Microsoft signed with Sun Microsystems in return for using the Java brand. Sun Microsystems sued and won, preventing Microsoft from using the Java brand and thus further production of J++. With the release of the .NET framework (and C#), the project was revived in the form of J#. During the development, C# was driven by CLR or Common Language Runtime. At compile-time, a .NET compiler converts such code into CIL code. At runtime, the CLR's just-in-time compiler converts the CIL code into code native to the operating system

  5. C# and Java Both languages are Objected Oriented, Garbage Collected and run-time compiled (JIT). In Java, wrapper classes must be used for primitive types in order to translate between their primitive data and object forms. Java: Integer.toString(42); C#: 42.toString(); Unlike Java, C# allows conditional compilation using preprocessor directives. C# only supports unchecked exceptions, which do not require the programmer to declare and catch all exceptions thrown by a method.

  6. The C Language Family Comparison of C# to C and C++ C# has no global variables or functions. All methods and members must be declared within classes. In C#, local variables cannot shadow variables of the enclosing block, unlike C and C++. C# supports a strict boolean type, bool, and does not allow conversion between an integer meaning bool (0, false – 1, true) In C#, multiple inheritance is not supported, although a class can implement any number of interfaces. Accessors called properties can be used to modify an object with syntax that resembles C++ member field access (get and set). C# has a unified type system. This means that all types, including primitives such as integers, are subclasses of the System.Object class. For example, every type inherits a ToString() method. (42.ToString() calls the ToString() method of an integer)

  7. C# Language Concepts Object Oriented Everything from data types to classes inherit from a base Object class No global variables or methods, everything is encased within classes.

  8. C# Language Concepts Memory Management  Memory cannot be explicitly freed. Memory is managed by the garbage collector. Garbage collector protects against memory leaks. Pointers can only be used within unsafe code blocks.

  9. C# Interesting Concepts You may use foreach on lists as well as for loops. Properties can expose member variables much like get and set methods. partial classes help break down large class files.

  10. Future Concepts (C# v3.0) Language Integrated Query will allow for queries on SQL, XML, collections, and more (from,where, select) Automatic properties will decrease code length.

  11. Code Sample (factorial – recursion)

  12. Code Sample (factorial – foreach)

  13. Code Sample (factorial – for)

More Related