C# - C Sharp Sinan TECER Programlama Dilleri Proje Ödevi

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Serileştirme (Serialization)
C# - Metotlar.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Tuğba DEMİREL
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
BPR151 ALGORİTMA VE PROGRAMLAMA - I
OOP4 LAB.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Java Programlama Koleksiyon(Collection) Sınıfları
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
İSİM UZAYLARI (NAMESPACE).
C# İle Veri Yapıları Ve Programlama
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
Veri Yapıları Ve Algoritmalar
METODLAR.
C# Metot Overloading (Aşırı yükleme)
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
İSİM UZAYLARI (NAMESPACE)
Nesneye Yönelik Programlama
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
LINQ (Language Integrated Query)
Java Sınıf ve Nesne Kavramı UML Gösterimi
Net Class Framework ’ ün en üst yapısına İsim Uzayı denir. İsim uzayları ; pascal programlama dilinde 1990 ve hatta öncesinden beri varolmuş, C’de yer.
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
Nesne Yönelimli Programlama Dersi
SABİT NESNE VE ELEMAN FONKSİYONLAR VE ELEMAN NESNELER
METOTLAR.
ÇOK BİÇİMLİLİK POLYMORPHISM
C# ile Seri İletişim Aslı Ergün.
Demet AYDIN METODLAR Demet AYDIN
Nesneye Dayalı Programlama
DÖNGÜLER.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
Visual Basic Windows Programlama.
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
BTP206– Görsel Programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Seri Port ile İletişim.
Ders Hakkında ► Ders Kredi si : 2+2 ► LAB : 355 ► Değerlendirme:  % 30 - Arasınav  % 20 - Proje  % 6 - Kısa sınav  % 4 - Devam  %40 - Yılsonu sınavı.
Hafta2 Rekürsif Algoritmalar
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
C Programlama Dili Bilgisayar Mühendisliği.
Nesneye Dayalı Programlama
C’de Fonsiyonlar Aslı Ergün.
5- class & object Nesne Yönelimli Programlama - i
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
3- VERİ TİPLERİ - OPERATÖRLER Nesne Yönelimli Programlama - i
Kurucular(Yapıcılar), Yıkıcılar
MTM216 GÖRSEL PROGRAMLAMA
Nesneye Dayalı Programlama 1
MTM216 GÖRSEL PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

C# - C Sharp Sinan TECER 04104426 Programlama Dilleri Proje Ödevi

C# – Giriş Microsoft tarafından 2000 yılında piyasaya çıkarılmıştır. Tümüyle nesne tabanlıdır. Yeni nesil sağlam ve dayanıklı bir dildir. Java,C++ ve Delphi den fazlasıyla faydalanmıştır.

C# – Giriş Tümüyle Nesne Tabanlıdır. Genel bakış.. C++, Java:ilkel tipleri objelerle birlikte çalışmaz. Smalltalk, Lisp: ilkel tipleri objedir ama iyi performans için yüksek maliyet gerektirir. C# herhangi performans maliyeti olmadan birleştirme yapar. Sistem boyunca kolay anlaşılabilirlik söz konusudur Geliştirilmiş yeniden kullanma ve genişletilebilirlik Yeni tipler: Decimal, SQL… Collections, gibi., her tip için çalışma

C# – Giriş Sağlam ve Dayanıklı Yazılım Garbage collection memory leaks problemi ve başıboş pointer problemi olmaz. Exceptions Error handling, sonradan olmaz Type-safety Tanımlanmayan değişkenlerin atama sorunu olmaz.

C# – Giriş Kod Koruma C++ heritage Birlikte Çalışabilirlik Namespaces, enums, unsigned tipleri, pointer lar (güvensiz koddur), gibi. Gereksiz kurban Birlikte Çalışabilirlik Bu konuda çalışma yapan en önemli yazılım MS C# implementasyonu XML, SOAP, COM, DLL lerle ve herhangi .NET dili ile etkin bir şekilde etkileşim içindedir. .NET teki uzun kod satırları Kısa zamanda öğrenilebilirlik Artan verimlilik

Hello World using System; class Hello { static void Main() { Console.WriteLine("Hello world"); }

C# Program Structure Namespace Type declarations Memberlar Organizasi Diğer namespaceler ve tipleri içerir Type declarations Class lar, struct lar, interface ler, enum yapısı, ve delegate lerdir Memberlar Constant-lar, field-lar, method lar, propertie-ler, indexer-lar, event-ler, operator-ler, constructor-lar, destructor-lar Organizasi Header file yok. Kod tek satır-satır yazılır. Deklaraston ve diğer bağımlılıklar yok.

C# Program Structure using System; namespace System.Collections { public class Stack Entry top; public void Push(object data) { top = new Entry(top, data); } public object Pop() { if (top == null) throw new InvalidOperationException(); object result = top.data; top = top.next; return result;

Tip Sistemi Değer tipi Referans tipleri Doğrudan veri içerir Null olamaz Referans tipleri Nesnelere referans içerirler. Null oalbilir. int i = 123; string s = "Hello world"; i 123 s "Hello world"

Tip Sistemi Değer tipleri Referans tipleri Primitive int i; Enum enum State { Off, On } Struct struct Point { int x, y; } Referans tipleri Class class Foo: Bar, IFoo {...} Interface interface IFoo: IBar {...} Array string[] a = new string[10]; Delegate delegate void Empty();

Önceden Tanımlanmış Türler C# Diğer türler types Reference object, string Signed sbyte, short, int, long Unsigned byte, ushort, uint, ulong Character char Floating-point float, double, decimal Logical bool Diğer türler, sistem içindeki takma tiplerle sağlanır. Örneğin, int == System.Int32

Class Yapısı Single inheritance Multiple interface implementation Class member-ları Constant, field, method, propertie, indexer, event, operator, constructor, destructor Sabit ve özel memberlar. İç içe türler Class üyelerine erişim public, protected, internal, private

Interface Yapısı Multiple inheritance method, propertie, indexer ve event içerebilir Private interface implementasyonu interface IDataBound { void Bind(IDataBinder binder); } class EditBox: Control, IDataBound void IDataBound.Bind(IDataBinder binder) {...}

Enum Yapısı Güçlü yazılmış Temel türleri İmplicit çevirisi yoktur int e veya intten Operator: +, -, ++, --, &, |, ^, ~ Temel türleri Byte, short, int, long enum Color: byte { Red = 1, Green = 2, Blue = 4, Black = 0, White = Red | Green | Blue, }

Delegate Yapısı Nesne tabanlı fonksiyon pointerı Çoklu alıcılar Her delege için bir çağrı listesi vardır. Thread-safe + ve – operation ları için Eventlerle birlikte kullanılırlar. delegate void MouseEvent(int x, int y); delegate double Func(double x); Func func = new Func(Math.Sin); double x = func(1.0);

Birleşik Tip Sistemi Herşey Objedir. Tüm tipler objeden inherit edilir. Datanın herhangi bir parçası extara iş gerektirmeden saklanabilir,taşına bilir veya değiştirilebilir. object Stream Hashtable int double MemoryStream FileStream

Propertie Yapısı Propertie ler “akıllı alan” dır doğal syntax, accessors, inlining Set ve Get fonksiyonlarının gelişmiş halidir. public class Button: Control { private string caption; public string Caption { get { return caption; } set { caption = value; Repaint(); Button b = new Button(); b.Caption = "OK"; String s = b.Caption;

Indexer Yapısı Indexerlar “akıllı array” dir Overload edilebilir public class ListBox: Control { private string[] items; public string this[int index] { get { return items[index]; } set { items[index] = value; Repaint(); ListBox listBox = new ListBox(); listBox[0] = "hello"; Console.WriteLine(listBox[0]);

Event Yapısı Kaynak Event imzası tanımlanır. public delegate void EventHandler(object sender, EventArgs e); Event i define et, işlemi bağla public class Button { public event EventHandler Click; protected void OnClick(EventArgs e) { if (Click != null) Click(this, e); } }

Event Yapısı Handling Define ve register event handler public class MyForm: Form { Button okButton; public MyForm() { okButton = new Button(...); okButton.Caption = "OK"; okButton.Click += new EventHandler(OkButtonClick); } void OkButtonClick(object sender, EventArgs e) { ShowMessage("You pressed the OK button");

Attribute Yapısı public class OrderProcessor { [WebMethod] public void SubmitOrder(PurchaseOrder order) {...} } [XmlRoot("Order", Namespace="urn:acme.b2b-schema.v1")] public class PurchaseOrder [XmlElement("shipTo")] public Address ShipTo; [XmlElement("billTo")] public Address BillTo; [XmlElement("comment")] public string Comment; [XmlElement("items")] public Item[] Items; [XmlAttribute("date")] public DateTime OrderDate; public class Address {...} public class Item {...}

Attribute Yapısı Attributes ile Tamamen genişletilebilir Type-safe Member ve üyelere bağlama yapılabilir Çalışma zamanında işlem yapılabilir Tamamen genişletilebilir Bir class basti bir biçimde System.Attribute den inherit edilebilir Type-safe Argument ler compile zamanında kontrol edilir .NET Framework le kapsamlı kullanılırlar XML, Web Servisleri, güvenlik, serileştirme, component model, COM ve P/Invoke birlikte çalışma, kod konfigürasyonu…

XML Yorum Yapısı class XmlElement { /// <summary> /// Returns the attribute with the given name and /// namespace</summary> /// <param name="name"> /// The name of the attribute</param> /// <param name="ns"> /// The namespace of the attribute, or null if /// the attribute has no namespace</param> /// <return> /// The attribute value, or null if the attribute /// does not exist</return> /// <seealso cref="GetAttr(string)"/> /// public string GetAttr(string name, string ns) { ... }

Statement ve Expression C++ yapısıyla aynıdır If, while, do bool conditionını gerektirir goto blok içinde zıplama yapamaz Switch statement foreach statement Checked ve unchecked statement void Foo() { i == 1; // error }

foreach Statement Yapısı Arraylerin iterasyonu ile Kullanıcının tanımladığı colleksiyonlar ile public static void Main(string[] args) { foreach (string s in args) Console.WriteLine(s); } foreach (Customer c in customers.OrderBy("name")) { if (c.Orders.Count != 0) { ... }

Operator Overloading İlk Class kullanıcının yarattığı tiptir Base class kütüphanesinde kullanılır Decimal, DateTime, TimeSpan UI kütüphanesiyle kullanılır Unit, Point, Rectangle SQL integrasyonu ile kullanılır SQLString, SQLInt16, SQLInt32, SQLInt64, SQLBool, SQLMoney, SQLNumeric, SQLFloat…

Koşullu derlemeler #define, #undef #if, #elif, #else, #endif Basit true-false yapısı Koşul metodları public class Debug { [Conditional("Debug")] public static void Assert(bool cond, String s) { if (!cond) { throw new AssertionException(s); }

Unsafe Kod Yapısı Platform bir çok durumu kapsar Unsafe kod Low-level kod “kutu içinde” Güvensiz pointer atamaları sağlar bildirme bağlantıları Sabit durum Basit olarak “inline C” unsafe void Foo() { char* buf = stackalloc char[256]; for (char* p = buf; p < buf + 256; p++) *p = 0; ... }

Unsafe Kod Yapısı class FileStream: Stream { int handle; public unsafe int Read(byte[] buffer, int index, int count) { int n = 0; fixed (byte* p = buffer) { ReadFile(handle, p + index, count, &n, null); } return n; [dllimport("kernel32", SetLastError=true)] static extern unsafe bool ReadFile(int hFile, void* lpBuffer, int nBytesToRead, int* nBytesRead, Overlapped* lpOverlapped);

Daha Fazla Bilgi İçin http://msdn.microsoft.com/net .NET SDK ve dökümantasyonu indirilebilir. http://msdn.microsoft.com/events/pdc .NET PDC den çeşitli dökümanlara ulaşılabilir. news://msnews.microsoft.com Microsoft/public/dotnet/csharp/general