1. Trang chủ
  2. » Công Nghệ Thông Tin

A brief introduction to Csharp

31 330 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 316,5 KB

Nội dung

A Brief Introduction to C# David Buksbaum Agenda • Goals • Background Information • C# - Up and Running • Quick Comparison to Java • Networking Namespaces • References Goals • Provide enough information to allow you to follow the code samples • Highlight key differences with Java • Tell you where you can get the compilers • Tell you where to go for more details on C# • Tell you where to go for more detailed comparisons with Java • Not to debate which is better, more important, faster, slower, or looks better in emacs Quick Glossary • BCL – Base Class Library • CLR – Common Language Runtime • GUI – Graphic User Interface • MSIL – Microsoft Intermediate Language • MS – Microsoft • SCM – Service Control Manager • SOA – Service Oriented Architecture .NET • .NET is: • Microsoft’s Platform for Windows Development • CLR – the Virtual Machine that runs MSIL aka MS Byte Code • BCL aka .NET Framework • A set of compilers that can generate MSIL C#, Visual Basic, C++, Java (the MS flavor) • There are 50+ languages that generate MSIL • http://www.dotnetpowered.com/languages.aspx • Most interoperate with each other C# • Language Created by Anders Hejlsberg (father of Delphi) • The Derivation History can be viewed here: http://www.levenez.com/lang/history.html • Principle Influencing Languages: • C++ • Delphi • Java • Designed to be an optimal Windows development language C# - Up and Running • A Simple C# Application • Application Types • Compiler & Run Time A Sample C# Application Application Types • Console Application • Has standard streams (out, in, err) • GUI can be added manually • Windows Application • GUI based • No standard streams (out, in, err) • Main thread is shared by the GUI message pump & your code • Service • No standard streams (out, in, err) • Main thread is commandeered by the SCM • No GUI Compiler Options from MS • SDK contains the command line compiler (C:\WINDOWS\Microsoft.NET\Framework\ {version}\csc.exe) • {version} looks like v2.0.50727 • Express Edition – Free IDE to work with Visual C# • Reduced runctionality version of Visual Studio • Visual Studio – The full development system • Optimizations, Data Access, Multi-Language, etc • $$$ [...]... a VM hosted logical process • Communications between App Domains requires marshalling (IPC) • Assemblies • Similar to Java JAR files • Physically they are EXE and/or DLL files What’s not Relevant, but Useful • Attributes • Meta tags that provide run time information for a type, NOT the instance • Example: [Serializable] public class foo { int x; }; • [Serializable] is converted into the class SerializableAttribute... override int Add(int x, int y); • Methods not marked virtual are equivalent to Java final methods • Methods can be marked with new to break the virtual chain What’s not Relevant, but Useful • Interop • Access to native code through attributes • [DllImport(“user32.dll”)] static int GetSystemMetrics(int); • The DllImport attribute informs the compiler and runtime that the tagged method is inside a native DLL... into the class SerializableAttribute • Attributes can be retrieved at run time • Many framework sub-systems use attributes • Serialization, XML, Interop, Conditional, Obsolete, etc… What’s not Relevant, but Useful • Polymorphism • Methods default to being non-virtual • To be virtual it must be defined as virtual • eg: public virtual int Add(int x, int y); • To override a virtual method, you use the... http://msdn1.microsoft.com/en-us/default.aspx • http://gotdotnet.com/ • http://www.c-sharpcorner.com/ • http://msdn.microsoft.com/community/codezone/ • http://en.wikipedia.org/wiki/C_Sharp_programming_langua ge • Online Tutorials • http://www .csharp- station.com/Tutorial.aspx • http://www.c-sharpcorner.com/Tutorials.asp Books • • Programming C#, Fourth Edition by Jesse Liberty (http://search.barnesandnoble.com/booksearch/ isbnInquiry.asp?z=y&isbn=0596006993&itm=2)... newtypename = namespace.type; • Directory structure != namespace hierarchy (as in C++) What’s Different & Relevant – cont • Properties • get, set and get/set • public string MyProperty { get { return(_text); } set { _text = value; } } • Delegates • Type safe function pointers • To create • public delegate bool CompareHandler(object left, object right); • To use • CompareHandler ch = new CompareHandler(myMethod);... DLL • Options such as the actual name in the DLL, marshalling strategies, calling convention, and more can be set using the attribute What’s not Relevant, but Useful • NET 2.0 – out now • • • • • Generics Partial Types Anonymous Methods Nullable Types Net 3.0 • Its all about data • Tuples & Query constructs public void Linq1() { int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var lowNums = from n... functionality for high level distributed programming (similar to RMI) • System.Web • Provides high level access to HTTP Future of NET Networking • Windows Communications Foundation • • • • Formally code named Indigo Designed to make SOA an integral part of Windows Tight coupling with NET designs For more information • http://msdn.microsoft.com/windowsvista/default.aspx? pull=/library/en-us/dnlong/html/wcfarch.asp... Linux, Mac OS X, Solaris, Unix • Sponsored by Novell • Food for thought: Suse + KDE + Mono = ??? • Sharp Develop • Open source IDE that uses NET SDK or Mono • Written in C# Quick Comparison to Java • What’s the same • • • • • • • Syntactically Similar Garbage Collected VM Environment Immutable Strings Exceptions (try / catch / finally) Object as root Single Inheritance model Multi-Interface model What’s... ushort, uint, ulong • Careful: byte in java is sbyte in C# • Class objects to wrap primitives • Int32 x = new Int32(4); • int x = Int32.Parse(“4”); What’s Different & Relevant – cont • Structures • Stack based elements, not heap based • Value type • struct packet { int code; string data; }; • Boxing / Unboxing • • • • • Conversion between value type and reference type packet p = new packet(); object o =... & Relevant • Keywords • • • • base vs super lock vs synchronized : vs extends & implements is vs instanceof • Exceptions • No throws keyword • See http://msdn.microsoft.com/chats/transcripts/vstudio/vstudio_ 032103.aspx What’s Different & Relevant – cont • Namespaces • namespace vs package • using vs import • No wildcard using • using namespace; // brings it all in – non-recursive • Type Aliasing • . A Brief Introduction to C# David Buksbaum Agenda • Goals • Background Information • C# - Up and Running • Quick Comparison to Java • Networking Namespaces • References Goals • Provide. language C# - Up and Running • A Simple C# Application • Application Types • Compiler & Run Time A Sample C# Application Application Types • Console Application • Has standard streams (out,. err) • GUI can be added manually • Windows Application • GUI based • No standard streams (out, in, err) • Main thread is shared by the GUI message pump & your code • Service • No standard streams

Ngày đăng: 23/10/2014, 15:18

TỪ KHÓA LIÊN QUAN

w