Şimdi Ara

C# İLE İLGİLENENLER BURADA TOPLANSIN

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
340
Cevap
14
Favori
51.145
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12345
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Arkadaşlar kimsenin C# bölümü açacağı yok burda, ben diyorumki C# ile ilgili soru ve bildiklerimizi bu topikde toplayalım.
    Haydi C# bilenler buraya



  • güzel düşünmüşsün serpantin bende nezamandır istiyodum böle bi yerde c# cılar toplansın diye inşallah tutar.
    ilk konu da benden gelsin c# ta class kavramı


    . CLASS (SINIF) KAVRAMI
    Class (sınıf) kavramının temelinde sınıflama gelir. Bazı nesneleri düşünelim; evler, arabalar, masalar, vb. Aslında "ev" deyince bütün evlerden söz ederiz. Böylece ortak davranış ve özelliklerin sınıflamasından söz edebiliriz.

    Nesne tabanlı programlama kavramı içinde bu iki terim karşımıza çıkar: Nesneler (objects) ve sınıflar (classes). Burada en belirgin ayrımı şu şekilde yapabiliriz: Sınıflar nesnelerin kopyasıdır. Programcıları bir ev planının (nesnesinin) kopyasını çıkartarak kullandıkları gibi ev nesnesinin işlevlerini kullanılırlar.

    Nesne tabanlı programlamada; nesneler bir sınıfı temel alarak oluşturulur. Bir sınıftan bir nesne oluşturma işlemine örnekleme (instantiating) denir.

    Örnek:

    Public static void Main()

    {

    PersonelClass PersonelNesne = New PersonelClass ();

    }

    Örnekte, PersonelNesne'si PersonelClass'dan örneklenerek (çoğaltılarak) oluşturulmuştur.

    Public static void Main()

    {

    PersonelClass PersonelNesne1 = New PersonelClass ();

    PersonelClass PersonelNesne2 = New PersonelClass ();

    }



    Yukarıdaki örnekte ise PersonelClass'ınden iki ayrı nesne örneklenmiştir.

    Örnek:

    class Hesap

    {

    public void miktar(decimal tutar)

    {

    borc += tutar;

    }

    private decimal borc;

    }


    A. SINIFLARI TANIMLAMAK
    C#'da sınıf tanımlamak için Class anahtar sözcüğü kullanılır. Ardından küme işaretiyle kodlar eklenir.

    Tanımı:

    class Sınıf_adı

    {

    üyeler;

    }


    Örnek:


    class Personel

    {

    private int personelno;

    }

    B. SINIF ÜYELERİ
    Sınıfların başlıca üyeleri metotlar, özellikler (properties) ve olaylardır (events). Yöntemler nesneler üzerinde çalışan kodlardır. Nesne ile bir eylemiş birleştireceksek, metotlar hazırlamamız gerekir. Özellikler yine nesnelerin çeşitli özelliklerini yansıtırlar. Olaylar ise kullanıcı ve sistemden alınan çeşitli tetikleyicilerdir. Örneğin kullanıcının bir alana tıklaması bir olaydır.

    Bu arada sınıf üyeleri belli bir kapsama sahiptir:

    Kapsam Açıklama
    public Üyeye sınıfının dışından da erişilmesini sağlar.
    protected Üyenin sınıfının dışından görülmemesini sağlar. Ancak türetilen sınıflardan erişilebilir.
    private Üyenin sınıfının dışından görülmemesini sağlar. Ancak türetilen sınıflardan bile bu üyeye erişilemez.

    II. NESNE TABANLI PROGRAMLAMANIN ÜÇ TEMEL PRENSİBİ
    Nesne tabanlı programlama dillerinin temel özellikleri vardır. Bunlar:

    • encapsulation (sarma)
    • interitance (kalıtım)
    • polymorphism (çok işlevlilik)

    Sarma özelliği çok genel bir özelliktir. Bir nesnenin içinde yetenekler içermesi ve onları sergilemesi bu özelliğe girer. Bir sınıfı örnekleyerek türetilen bir nesne üyelerine erişmek bu prensibin sağladığı olanaktır.

    Kalıtım ise, var olan bir sınıfı temel alan yeni bir sınıf geliştirme tekniğidir. Türetilen yeni sınıf, temel sınıfın tüm üyelerini devralır. Ardından türetilen sınıf üzerinde istenilen değişiklikler yapılabilir.

    Çok işlevlilik ise biraz daha soyut bir kavramdır. Aynı işlemi birçok kez yapabilmek anlamına gelir. Türetilmiş sınıflar devraldığı işlemleri kendi bildiği şekilde uygular.


    A. KALITIM (INHERITENCE)
    Kalıtım izni olan bir taban sınıftan yeni bir sınıf türetmeye (derive) kalıtım denir. Türetilen sınıflar, taban sınıfın sergilediği bütün metot ve öznitelikleri kullanırlar. Ardından türetilen sınıf üzerinde istenilen değişiklikler yapılabilir.

    Kalıtımın en önemli özelliği bir sınıf hiyerarşisi oluşturmaktır.

    Tanımı:

    class TuretilenSınıf: TabanSınıf

    {

    .....

    }


    Örnek:

    class Ornek

    {

    private class

    }


    Örnek:

    using System;

    class Programlar

    {

    public Programlar()

    {

    OrtakOzellik = "Evet"

    }

    public string OrtakOzellik;

    public void OrtakMetot()

    {

    Console.WriteLine("Programların ortak özellikleri");

    }



    }


    class Cdili : Programlar

    {

    public void CdiliMetodu()

    {

    Console.WriteLine("Cdili metodu");

    }



    }

    class Kalitimlar

    {

    public static void Main()

    {

    Cdili bizimdil = New Cdili();

    bizimdil.CdiliMetodu();

    bizimdil.OrtakMetot();

    }

    }
  • VAlla hocam gerçekten güzel bi bölüm olmuş . İnşallah devamı gelir.
  • teşekkürler arkadaşlar, siz ne kadar katkıda bulunursanız bu topik de okadar herkese yararlı olur inşallah.

    Bu aradan benden bi kaç link :


    http://www.csharpnedir.com (Tükçe olarak düzenlenmiş içinde sesli görüntülü konu anlatımları falan var - bilmeyenler için bu link - gerçi herkes bu siteyi duymuştur ama neyse. )


    http://msdn.microsoft.com/vstudio/express/visualcsharp/learning/default.aspx (buda msdn, ingilizcesi iyi olanlar için birebir, burda da yine görüntülü anlatımlar var-kesinlikle öneririm.)
  • SqlConnection

    Microsoft SQL Server 7.0 ve üst sürüm veritabanlarına erişmek için System.Data.SqlClient aduzayı altındaki SqlConnection nesnesini kullanıyoruz. Bu bağlantı nesnesi (daha doğrusu nesneyi sunan sağlayıcı), sadece SQL Server için tasarlandığı için başka bir veritabanı erişiminde kullanamıyoruz. SQL Server'in daha alt sürümlerine erişim içinse eskiden olduğu gibi yine OLE DB kullanılacak. Peki 7 ve üst versiyonlarında neden ayrı bir sağlayıcı kullanmamız gerekiyor? Aslında böyle bi zorunluluk yok. OLE DB hala bir seçenek. Ancak veritabanı erişimi gibi masraflı bir işte daha yüksek performans arzuluyorsak, tercihimiz SQL Server .NET veri sağlayıcısı olmalıdır. Çünkü bu sağlayıcı, SQL Server ile TDS (Tabular Data Stream) paketleri seviyesinde, yani SQL Server'in anladığı dilde haberleşiyor. Böylece OLE DB gibi bir tercümanı direk saf dışı bırakmış oluyorsunuz

    OleDbConnection nesnesi, System.Data.OleDb aduzayına bağlı, OLE DB .NET veri sağlayıcısı üzerinden bir veri kaynağına bağlantı tesis etmemizi sağlar. Kullanımı aynen yukarıda bahsettiğimiz SqlConnection nesnesi gibidir. O nedenle aynı şeyleri tekrar etmeyeceğiz. Yalnız bu tip bağlantıda, bağlantı cümlesini oluştururken, hedef veri kaynağına uygun bir Provider seçmemiz gerekecektir. OLE DB veri sağlayıcısını kullanarak, sistemde OLE DB sağlayıcısı bulunan her veri kaynağına (SQL Server, Oracle, Access, Indexing Service) bağlanabiliriz.




    ARKADAŞLAR KİMSE SORU SORMUYO FİKİR BİLDİRMİYOR BİRAZ DAHA AKTİF OLSAK DAHA YARARLI OLACAK.......................................

    Ben bi soru sorayım o zaman yukarıda bahsedilen 2 bağlantı şeklini bir component haline getirmek istiyorum bunun için design patternleri kullanıcam design patternin ne olduğunu bilmeyen arkadaşlar için bir döküman koyucam buraya neyse abstract factory pattern ile 4 classım olacak bu class lar databases,SQLConnection,OLEDB Connection ve ConnectionFactory .
    Programcı seçime göre istediği database e bağlanabilecek.................................

    Bunu tasarlayabilecek arkadaş varmı aranızda..
  • BU KOD ÇALIŞMIYOR ÇALIŞTIRABİLECEK VEYA FİKİR BİLDİREBİLECEK ARKADAŞLARIN MESAJLARINI BEKLİYORUM


    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Data.SqlClient;

    namespace Factory
    {
    public class databases
    {
    protected OleDbConnection conn1;
    protected SqlConnection conn2;
    protected string baglanti,sorgu;

    }

    public class OledbConn : databases
    {
    OledbConn(){
    baglanti=@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\koray kirdinli\Belgelerim\vt1.mdb";
    sorgu="SELECT * FROM tablo";
    conn1=new OleDbConnection(baglanti);
    conn2.Open();
    }
    }

    public class SqlConn : databases
    {
    SqlConn(){
    baglanti="Server=(local); User id=sa; Password=sa; Database=Northwind";
    sorgu="SELECT * FROM Products";
    conn2=new SqlConnection(baglanti);
    conn2.Open();
    }
    }

    public class ConnectionFactory
    {
    ConnectionFactory(){}
    public databases SelectConnection(int x){
    if(x==1) return new SqlConn();
    else return new OledbConn();
    }
    }
    }

    Biz ConnectionFactory nsenesi yaratıcaz o hangi connectionun açılacağına karar verecek
  • c# kursuna yeni başlıyacam. dersler ilerledikçe sorularım olacak.bu forumu açtığınız için tşkler. görüşmek üzere.
  • quote:

    Orjinalden alıntı: koray1983

    BU KOD ÇALIŞMIYOR ÇALIŞTIRABİLECEK VEYA FİKİR BİLDİREBİLECEK ARKADAŞLARIN MESAJLARINI BEKLİYORUM


    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Data.SqlClient;

    namespace Factory
    {
    public class databases
    {
    protected OleDbConnection conn1;
    protected SqlConnection conn2;
    protected string baglanti,sorgu;

    }

    public class OledbConn : databases
    {
    OledbConn(){
    baglanti=@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\koray kirdinli\Belgelerim\vt1.mdb";
    sorgu="SELECT * FROM tablo";
    conn1=new OleDbConnection(baglanti);
    conn2.Open();
    }
    }

    public class SqlConn : databases
    {
    SqlConn(){
    baglanti="Server=(local); User id=sa; Password=sa; Database=Northwind";
    sorgu="SELECT * FROM Products";
    conn2=new SqlConnection(baglanti);
    conn2.Open();
    }
    }

    public class ConnectionFactory
    {
    ConnectionFactory(){}
    public databases SelectConnection(int x){
    if(x==1) return new SqlConn();
    else return new OledbConn();
    }
    }
    }

    Biz ConnectionFactory nsenesi yaratıcaz o hangi connectionun açılacağına karar verecek



    ilk bakista gorunen hatalar:

    birincisi bu kod compile olmaz ki, constructorlar'in onune public koyman lazim yoksa new ile yeni class olusturamazsin. (connectionfactory'de yaptigin gibi)
    oledbconn class'inda conn1 i new'lemissin ama conn2'yi acmissin. bu derleme hatasi vermez ama sonucta calismaz.
    ayrica dizayn olarak da tuhaf gorunuyor. databases icindeki sorgu'ya nasil ulasmayi dusunuyorsun? bu yontemle actigin database baglantisini nasil kapamayi dusunuyorsun vs vs...
  • valla bu şekilde olmucakmış zaten banada mantıksız geldi hatalara gelince sadece bir fikir olsun diye yazılmış bi kod yani uğraşmadım üzerinde o yüzden de saçma oldu zaten..
    Ama böyle bir tasarım var Factory Design Pattern adı altında ve çok kullanılıyomuş prof uygulamalarda.

    Benim yapacağım çalışmada connection stringleri XML dosyasından alıcam

    databases db=new databases(parametre);
    db.bağlan(parametreler);

    kodunu yazınca kullanıcı seçtiği database e bağlanabilecek.XML dosyası aşağıda

    <?xml version="1.0" encoding="utf-8" ?>
    <baglantilar>
    <connection>
    <connectionadi>sqlconn</connectionadi>
    <connectionstring>Server=(local); User id=sa; Password=sa; Database=Northwind</connectionstring>
    </connection>
    <connection>
    <connectionadi>oledbconn</connectionadi>
    <connectionstring>Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\koray kirdinli\Belgelerim\vt1.mdb</connectionstring>
    </connection>
    </baglantilar>

    bana burdan verileri nasıl alabileceğimi ssöyleyecek bi arkadaş olusa sevinirim
  • arkadaslar gerçekten güzel bir konu açmissiniz. Zaten çogu sitede c# programlama diline deyinmiyorlar burda hep birlikte birbirimize yardimci olma dilegi ileee........
    musti.ksk@hotmail.com c# ta elimden geldigi kadar yardimlasalim.
  • Rica etsem konunun ehli biri c# ı kullanmanın bize ne gibi kolaylıklar sağlayacağını, diğer OOP dillerden fazlalarını ve/veya eksiklerini, öğrenmek için ne gibi bir altyapımızın olması gerektiğini, dilin database ile nasıl ilişki kurduğunu kısaca anlatabilir mi?
    Teşekkürler..
  • abi iyi yapmışsınız bu bölümü acmakla ben de ne zamandır niyetliyim ama biyerinden de baslamak lazım.takipteyim...:D
  • quote:

    Orjinalden alıntı: nneverr

    Rica etsem konunun ehli biri c# ı kullanmanın bize ne gibi kolaylıklar sağlayacağını, diğer OOP dillerden fazlalarını ve/veya eksiklerini, öğrenmek için ne gibi bir altyapımızın olması gerektiğini, dilin database ile nasıl ilişki kurduğunu kısaca anlatabilir mi?
    Teşekkürler..


    C# kullanmak değilde .NET kullanmak desek daha doğru bir yaklaşım olur sanırım.Konunun dediğin kadar ehli değilim ama bazı düşüncelerimi paylaşmak istedim.Bi kere daha önceden C,C++ kullandıysan kod kısmını çözmek o kadarda zor değil...Net birçok standardı bize sağlamış.
    database kısmına gelince ADO.NET mimarisini kullanıyor.Database e bağlanmakta zor değil.
    Bence C# ve .NET bilgisayarda yavaş çalışmasına rağmen güzel.



    www.csharpnedir.com
    www.msakademik.net
    http://www.dotnetturk.com
    http://msdn.microsoft.com
    http://www.c-sharpcorner.com
    http://www.yazgelistir.com

    ilgili siteler buldukça işe yarar yazıcam
  •  C# İLE İLGİLENENLER BURADA TOPLANSIN


    http://ra***.de/files/15011647/SuDoku.zip.html

    c#'ta sudoku problemlerini çözen program ve kodları. pc netin arka kapağındaki soruları çözmeye çalışıyordum, baya zorlandım, ben de bu programı yapmaya karar verdim. oyunun kuralları basit, her satırda sütunda ve 3x3 'lük karelerde 1-9 arası sayılar bir kere kullanılacak.
    bu topic gerçekten güzel olmuş böyle çalışmalarımızı burda paylaşabiliriz.
    herkese iyi çalışmalar..
  • esoyyigit link çalismiyor.....
  • http://rapidshare.de/files/15011647/SuDoku.zip.html

    **** -> r.a.p.i.d.s.h.a.r.e

    ok?



    < Bu mesaj bu kişi tarafından değiştirildi esoyyigit -- 9 Mart 2006; 0:30:12 >
  • ben de varım ben de varım

    yeni başladım bakalım nolucak c/c++ sadece temel olarak biliyorum ama c# kesin kasıcam
  • quote:

    Orjinalden alıntı: mus_efe

    ben de varım ben de varım

    yeni başladım bakalım nolucak c/c++ sadece temel olarak biliyorum ama c# kesin kasıcam



    kasacak çok bişi yok,inan göreceksinki c++ dan daha kolay öğreneceksin, temel kurallara bi bak önce sonrada MSDN den videoları indir izle hepsi bu, sonrada başla canavar gibi program geliştirmeye.
  • C# ta bir formdan bir butona basılınca diğer bir forma geçiyorum fakat ilk form hep açık kalıyor onu kapatmanın komutu neydi ya...
  • form1.hide

    form2.show
  • 
Sayfa: 12345
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.