Merhaba arkadaşlar. Çalışmanızda bu hatayı bir objenizn propertysine değer ataması işlemi yapıyorsanız görebilirsiniz bunun nedeni zaten objenin o properysine değer atamış olmanızdır.Örnek olarak ;
var kisi = new kisiObje
{
ID = 1,
Yas = 18,
Ad = "Ali",
Soyad = "Cankan",
Yas = 21
};
Bu atama işeleminde 2. Yas ataması bölümünde hata olduğunu visual studio bize bildiricek yapmamız gereken atamalarımı kontrol etmek.
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
20 Mayıs 2013 Pazartesi
30 Nisan 2012 Pazartesi
TSQL Nedir ?
TSql nedirmi ?? Bildiğiniz Sql'in üzerine birtakım eklentiler yapılmış bir biçimidir.En kaba ve basit tabir budur arkadaşkar.TSql'i MSSQL kullanmaktadır başka kullanan varmı yokmu pek bir bilgim yok bu konuda.MSSQL üzerinden gidiceğim önceki cümlemden anlaşılıyor gibi herneyse.Sizlere TSQL başlıkları altında kod ile nasıl tablo yaratılır düzenlenir silinir.Tablo içindeki verileri nasıl düzenleriz sileriz yada tablolara veri ekleriz.MSSQL deki tarih saat ve string fonksyonlar nelerdir nasıl kullanırız bunların üzerinde durucam.Şimdi birkaç genel tanımla başlayalım.
- Herhangi bir operasyondan sonra meydana gelen değerlere VERİ denir.
- Veri tabanı - Bu verilerin belli bir Disiplinde saklanmasıdır.
- Veri tabanında verilerin saklandığı yerler Tablolardır.
- Tablolar Veri tiplerine göre dizayn edilmelidir.
Birkaç önemli kavram vardı bunlarıda böyle özetliyorum arkadaşlar.Bir sonraki makalemde Constraintler konusuna değinicem.Sql ile ilgili temel kavramlardan sonra asıl güzelliklere doğru yelken açıcaz.
C#'da OOP - 4 İnterface
Selamlar yazılımcı arkadaşlar.Bu makalemde interface nedir ne iş yapar bu kavramlar üstünde durucam.C#'da OOP - 3 Inheritance (Miras Kalıtım Alma) yazımda bahsettimmi hatırlamıyorum ama şimdi bahsedeyim.Şöyle bir durumumuz var C# yarattığımız objeler sadece bir başka objeden miras alabiliyorlar.İnterfacede aslında miras kavramına benzer ama farklıdır.Şöyledirki arkadaşlar OOP gerçek hayatı programlamak demiştik hatırlarsanız.Tüm kuşar uçar demiştik ama penguende bir kuştur ama uçamaz malesef.İşte burda interface dediğimiz yapı devreye girmektedir.O zaman Uçmayı bir interface olarak tanımlarız ve Sadece Uçabilen Kuşlara implemente ederiz ve sorun ortadan kalkar en basit şekilde böyle açıklanabilir gibi geliyor arkadaşlar.Tabi sadece sağladıklarıda bu değildir daha farklı özellikleride vardır.Bunlara tek tek değinicem.Kodlama kısmına geçelim arkadaşlar.Örneğimde Kuş sınıfım olucak buna bağlı olarakta bir penguenim ve bir martım olucak ve birte interface'im olucak IUcmak adında.
throw new NotImplementedException();
public class Penguen :Kus
{
public bool
YuzmeDurumu;
}
Evet arkadaşlar ilk objem penguenim.Bilirsiniz penguenler yüzebilirler.Kuşlardan kalıtım almışım ve penguenimi yaratmışım.İkinci Örneğim Interfaceimin yazılmış hali olucak.
public interface IUcmak
{
void uc();
}
Interface'imde hazır arkadaşlar şimdi martımı oluşturucam ve Kus sınıfından miras alıp IUcmak interfaceinide implemente edicem.İmplemente işleminde karşıma şöyle bir ekran gelicek IUcmak'ın altı çizilicek ve içinde bir olay var bunuda ekleyelimmi diycek.
Resimde görüldüğü gibi arkadaşlar aşağıdada eklendikten sonraki kodları görüceksiniz.
public class Martı:Kus,IUcmak
{
public void uc()
{
}
}
Şimdi gelelim sadece arkadaşlar.Interfacein bize sağladıklarından bir tanesi çok biçimlilik oldu burda.Bazı Kuşlar Uçabilir bazılarıysa uçamazlar.Ancak bir intercafe'i eklediğiniz zaman içindeki methotlarıda kullanmak zorundayız arkadaşlar.Bir açıdanda bir sözleşme.Beni kullanırsan benim methot yada methotlarımıda kullanmak zorundasın.Der şöyle düşünün winamp a bir eklenti yazıcaksınız diyelim winamp sizin yazdıklarınızı nerden bilicek nasıl algılıycak.Winamp'ın verdiği interfaceleri kullanırsınız ve bunlar sizi bazı methotları kullanmaya mecbur bırakır ve sizde mecburen kullanırsınız.Şimdi bu kısa notu da geçeyim ve uçan başka bir hayvanı ele alayım yarasa kuş değildir bildiğiniz gibi ama uçabilir.O zaman yarasa diye bir objem olsa bunada UIcmak interfaceini eklemem gerekicek.Yarasamda uçabilicek.
Anlatmak istediklerimi sizlere aktarabildiysem birşeyler aktarabilmişim demektir dostlar :)Okuduğunuz için teşekkürler.
C#'da FileSystemWatcher
Selam dostlar bu yazımdada size FileSystemWatcher nesnesinden bahsedicem. Bu nesne izler arkadaşlar neyi izler ?? Siz bir path verirsiniz ve o pathteki mesela ben c:\izleniyo diye bir path diyeyim size burayı izler.Burada dosya yaratıldımı ,değiştirildimi , silindimi ve yeniden adlandırıldımı bir dosya bana bunları izlememi sağlar.4 tane eventı vardır.Bunlarıda bir önceki cümlede söylemiştim .
Resimde eventlarını görüyoruz ben içlerine basit kodlar yazarak bir uygulama yaptım.
Şimdide Kodlara geçelim arkadaşlar.
Resimde eventlarını görüyoruz ben içlerine basit kodlar yazarak bir uygulama yaptım.
Şimdide Kodlara geçelim arkadaşlar.
private void
fileSystemWatcher1_Created(object sender,
System.IO.FileSystemEventArgs e)
{
listBox1.Items.Add("yaratıldı");
}
private void
fileSystemWatcher1_Deleted(object sender,
System.IO.FileSystemEventArgs e)
{
listBox1.Items.Add("silindi");
}
private void
fileSystemWatcher1_Changed(object sender,
System.IO.FileSystemEventArgs e)
{
listBox1.Items.Add("değiştirildi");
}
private void
fileSystemWatcher1_Renamed(object sender,
System.IO.RenamedEventArgs e)
{
listBox1.Items.Add("yeniden adlandırıldı");
}
Kodlarımızda bu şekilde .Belirttiğim path de bir dosya işlemi yapıldığında FileSystemWatcher bana hemen birşey yapıldı diye ispiyonluyor.Burda önemli bir Husus da vardır.Örnek veriyorum büyük bir dosya kopyalıyorsunuz.FileSystemWatcher da bu dosyanın kopyalandığı pathi izliyor diyelim.Dosyanın kopyalamasının bitmesini beklemiyor direk yaratıldı diyor sizde tam olarak bu dosyanın kopyalaması ne zaman tamamlanmış şeklinde bir sonuç alamıyorsunuz.Okduğunuz için teşekkürler.Sağlıcakla kalın.
Etiketler:
C#,
Csharp,
File,
File System Watcher,
FileSystemWatcher,
İzleyici,
listbox,
Path,
recep gür,
System,
Watcher
C# Örnekleri - Otobüs Koltukları
Selam millet bu makalemde sizlerle bir windows kontrolü yaratma , özelliklerini belirleme ve forma yerleştirme işlemleri üzerinde durucam.Bunun için bir otobüs'ün koltuk dizilimini örnek olarak kullanıcam.
Evet arkadaşlar Kodlarımız çalıştığında Ekran görüntüsü bu şekilde olucaktır kodlara geçicek olursak.
Evet arkadaşlar Kodlarımız çalıştığında Ekran görüntüsü bu şekilde olucaktır kodlara geçicek olursak.
var sayac = 0;
for (int j = 1; j
< 14; j++)
{
for (int
i = 1; i < 6; i++)
{
if ((i == 3 && j != 13) || (j ==
7 & i > 2))
continue;
Button btn = new
Button();//Yeni
Bir Buton
btn.Text = (++sayac).ToString();
btn.Size = new Size(40,
40); //Butonun Boyutunu Ayarlar.
btn.Location = new Point(40 * i, 40 * j); //Butonun
Yerini ayarlar.
btn.BackColor = Color.White;
this.Controls.Add(btn); //Oluşan btn Nesnesini Form’a ekler.
}
Kodlarda gayet açık arkadaşlar.İç içe 2 tane döngümüz var.İf içerisinde de koltuk eklenmemesi gereken durumlar mevcut eğer şart sağlanıyorsa
continue diyip
Button yaratmıyor.Okuduğunuz için teşekkürler.
29 Nisan 2012 Pazar
C#'da String Fonksyonlar
Merhaba yazılım dostları.Bu makalemde sizlere String Fonksyonları örnekliycem.Nedir ne işimize yarar bu fonksyonlar dediğimizde ise işimizi aşırı kolaylaştıran methotlar diyorum bunlara.Örnek üstünde anlatarak gidicem.
Örnek olarak böyle bir form tasarladım arkadaşlar ve bu form üzerinden işlemlerime devam edicem. Formda 1 adet textboxım var ve bir listboxım var.Textboxım üzerinde uygulanan fonksyonlardan çıkan sonuç listboxımda görülüyor.Şimdi kod kısmına geçersek daha detaylıca sizlere kodları göstericem.
Örnek olarak böyle bir form tasarladım arkadaşlar ve bu form üzerinden işlemlerime devam edicem. Formda 1 adet textboxım var ve bir listboxım var.Textboxım üzerinde uygulanan fonksyonlardan çıkan sonuç listboxımda görülüyor.Şimdi kod kısmına geçersek daha detaylıca sizlere kodları göstericem.
string kelime = txtYazi.Text.ToLower();
listBox1.Items.Add(kelime);
//kelime değişkenine txtyazı
textboxındaki değerleri küçülterek aktarır.
string kelime = txtYazi.Text.ToUpper();
listBox1.Items.Add(kelime);
//kelime değişkenine txtyazı
textboxındaki değerleri büyülterek aktarır.
string kelime = txtYazi.Text.TrimStart('b');
listBox1.Items.Add(kelime);
//3 farklı trim vardır arkadaşlar
TrimStart,Trim,TrimStop olarak isimlerindende belli olduğu gibi biri baştan
biri sonran biride orta kısımdan belirtilen char yada charlar diyrorum yani
char dizisindeki karakterleri kaldırır.
string kelime = txtYazi.Text.Substring(4, 5);
listBox1.Items.Add(kelime);
//2 overloadı vardır.
//1.sinde Verilen indexden sona kadar
Kopyalar.
//2.sinde Kaçıncı İndexten Kaç Tane Kopyalayacağını
Belirleriz.
string kelime = txtYazi.Text.Remove(2, 3 );
listBox1.Items.Add(kelime);
//Substring'in Tersidir.Belli bir kısmı
almak yerine siler.
string kelime = txtYazi.Text.Replace("bilge Adam", "Adam
Bilge");
listBox1.Items.Add(kelime);
//Yer değiştirme işlemi yapar.1
Parametresinde olan string veriyi 2.Parametresi ile yer değiştirir.
string[] kelimeler = txtYazi.Text.Split(' ');
listBox1.Items.AddRange(kelimeler);
//String içindeki belli karakterlere göre
bölmek için kullanılır.Mesela her a harfinde böl.string dizi haline dönüştürür.Bizim
örneğimizde boşluktan sonra bölüyor.
Örnek : Baş Harfleri Büyütme
string[] kelimeler = txtYazi.Text.Split(' ');
string cikis = "";
foreach (var item in kelimeler)
{
cikis =
cikis + item.Substring(0, 1).ToUpper() + item.Substring(1) + " ";
}
listBox1.Items.Add(cikis.TrimEnd());
Örnek : Harf Piramidi
for (int i =
txtYazi.TextLength; i > 0; i--)
{
listBox1.Items.Add(txtYazi.Text.Substring(0,
i));
}
Örnek : Comboboxta Ayları listeletmek
istiyorum ama 1,2,3,4.. yerine 01,02 şeklinde olsun istiyorum.
for (int i = 1; i <= 12;
i++)
{
comboBox1.Items.Add(i.ToString().PadLeft(2,'0'));
}
//Burada yaptığımız işlem ise şöyle
arkadaşlar.String değerimin 2 karakter olmasını istiyorum.Eğer 2 karakter
değilse soluna 0 ekle demek oluyor.
Önemli bir hususu atlamadan geçmek istemiyorum arkadaşlar. Makaledeki en önemli kısımlardan biri burası olucak çünkü string fonksyonlar direk örneklerdeki kelime değişkeni üzerinde işlem yapmaz . Onun üzerinden bir kopya alır üstünde işlem yapar sonrada yeni veriyi aktarır yada artık siz ne yapmak istiyorsanız onu yapar. Birazda olsa yardımcı olabildiğime inanıyorum dostlar okuduğunuz için teşekkürler.
24 Nisan 2012 Salı
C#'da OOP - 2 Encapsulation
Merhaba arkadaşlar .Bu yazımda OOP'de Encapsulation işlemlerine değişnicem.Başlamadan önce birkaç durumdan bahsetmek istiyorum.Önceki yazımda C#'da OOP - 1. Field diye birşeyden bahsetmiştim. Bu yazımdada Fieldlari kapsüllemekten bahsedicem. Kapsülleme işlemini yapan kısma Property denir.Bunu şöyle düşünebilirsiniz.Bir anne var birde çocuğu.Anne çocuğuna zarar gelmesini tabiki istemez.Senaryoyu şöyle canlandıralım gözümüzde .Bir bebek var ortada bir anne işte anne çocuğuna mama yediricek. Anne bu mamayı çocuğuna yedirmeden önce mamanın özelliklerini araştırır . Uygunsa çocuğuna mamayı yedirir.Kapsüllemede aynen böyle bir durumdur arkadaşlar.Fielda değer atamadan önce gelen değeri kontrol edip vericeğimiz koşula göre değer aktarma işlemini güvenli olarak yapmamızı sağlar. Burda sadece değerleri kontrol etmeyiz üstünde işlemler de yapabiliriz. C#'da OOP - 1 yazımdaki örneği kullanarak devam edelim arkadaşlar.
public class Insan
public class Insan
{
private string ad;
private string soyad;
private DateTime dogumtarihi;
public string Ad { get; set; }
public string Ad
public string Soyad { get; set; }
public DateTime DogumTarihi { get; set; }
}
Örneğimizde field alanlarını private yaptık.Burdaki amacımız dışarıdan yani Insan Class'ı dışından erişimi fieldlarımıza kesmektir yani erişimi engelliyoruz.Propertylerin get ve set methotları vardır.set methotu veriyi almamıza ve get methotuda veriyi göndermemize yarar bu methotlar içerisinde kotrollerimizi uygulayabiliriz. Mesela dışarıdan gelen doğum değerini kontrol edelim.
public DateTime DogumTarihi
{
get
{
return dogumtarihi ;
}
set
{
if (value < DateTime.Now)
{
dogumtarihi = value;
}
}
}
Örneğimizde arkadaşlar girilen yaş değeri üzerinde encapsulation uyguladık.Burdaki amaç örnek olarka 01.01.2010 yılındaysanız ve girilen doğum tarihi 01.02.2010 ise bunu yakalamak yani hatalı girişi engellemek.
Bir örnek daha yapalım ve bu sefer dışarıdan Ad değerinin tamamını string bir fonksyon kullanarak büyük harflere çevirelim.
public string Ad
{
get
{
return ad.ToUpper();
}
set
{
ad = value;
}
}
Örneğimizde field alanlarını private yaptık.Burdaki amacımız dışarıdan yani Insan Class'ı dışından erişimi fieldlarımıza kesmektir yani erişimi engelliyoruz.Propertylerin get ve set methotları vardır.set methotu veriyi almamıza ve get methotuda veriyi göndermemize yarar bu methotlar içerisinde kotrollerimizi uygulayabiliriz. Mesela dışarıdan gelen doğum değerini kontrol edelim.
public DateTime DogumTarihi
get
{
return dogumtarihi ;
}
set
{
if (value < DateTime.Now)
{
dogumtarihi = value;
}
}
}
Örneğimizde arkadaşlar girilen yaş değeri üzerinde encapsulation uyguladık.Burdaki amaç örnek olarka 01.01.2010 yılındaysanız ve girilen doğum tarihi 01.02.2010 ise bunu yakalamak yani hatalı girişi engellemek.
Bir örnek daha yapalım ve bu sefer dışarıdan Ad değerinin tamamını string bir fonksyon kullanarak büyük harflere çevirelim.
public string Ad
{
get
{
return ad.ToUpper();
}
set
{
ad = value;
}
}
Örneklerdende anlaşılacağı üzere get ve set methotlarının kullanımı böyledir arkadaşlar. Property yapısı böyle işlemektir.Umarım yardımcı olabilmişimdir.
Etiketler:
C#,
c# encapsulation,
Csharp,
Encapsulation,
Gerçek Hayatı Programlamak,
Kapsülleme,
Nesne,
Nesne Yönelimli Programlama,
Object,
Object Oriented Programming,
OOP,
Oriented,
Programlama,
Programming,
recep gür
17 Nisan 2012 Salı
C#'da OOP - 1
OOP Gerçek Hayatı Programlamak demiştik arkadaşlar.Herşeyin bir Nesne olduğunuda söylemiştik.Gerkçek hayatta her nesnenin bir özelliği,değerleri ve işlevleri vardır.Yani bir sistem vardır arkadaşlar bizde bunu bir nesneye uygularız.Örnek olarak OOP'yi bir insan üzerinde uygulayalım arkadaşlar.İnsanların bir adı ve soyadı vardır.Bir doğum tarihleri vardır.Kod olarak dökersek.
Bu örnekte insan nesnesi bir classtır ve Ad,Soyad,DogumTarihi de özellikleridir.Bunlar bildiğiniz değişkenlerdir arkadaşlar ama OOP yapısında bunlara Field denmektedir.Bir diğer örnekle Insana ulaşalım arkadaşlar.
public class Insan
{
public string Ad;
public string Soyad;
public DateTime DogumTarihi;
}
Bu örnekte insan nesnesi bir classtır ve Ad,Soyad,DogumTarihi de özellikleridir.Bunlar bildiğiniz değişkenlerdir arkadaşlar ama OOP yapısında bunlara Field denmektedir.Bir diğer örnekle Insana ulaşalım arkadaşlar.
Insan
insan = new Insan();
insan.Ad = "Recep";
insan.Soyad = "Gür";
insan.DogumTarihi = Convert.ToDateTime("02.02.1988");
Evet arkadaşlar insan adında bir Insan yarattık ve Fieldlarına değerlerimizi yükledik.Bir Nesne yarattık ve değer atadık OOP dünyasına ilk adımımızı attık arkadaşlar.Umarım yardımcı olabilmişimdir.
C#'da Object Oriented Programming (OOP) Giriş
Merhaba arkadaşlar.Sizlere OOP'den(Türkçe açılımı Nesne Yönelimli Programlama) bahsetmeden önce biraz geçmişten bahsetmek istiyorum.OOP'den önceki dönemlerde bilgisayarlar daha çok hesaplama yapmak için kullanılıyordu. Finansal ve Mali işlemler gibi. Bugünkü kullanım şekli çok farklı 1960 larla günümüzü yan yana koyduğumuz zaman bugün inanılmaz farklı bir yerdeyiz.Tabletler akıllı Telefonlar bugün olmazsa olmazlarımızdan.Gelişimlerini düşününce ve ne amaçla kullandığımızı düşününce elbetteki çok büyük farklar var. Eski günlerde hesaplama gibi işlemler için kullanırken bugün hayatımızı dijital ortama uyarlamamızı sağlıyorlar.
Bugün internette dolaşırken birçok farklı yapı birçok farklı site görebiliriz.Birçoğu günlük hayatımızın içerisinden kesit alınıp programlanmıştır.Bunlarla ilgili birkaç örnek vermek istiyorum dostlar.
Facebook'u ele alalım bolca özelliği var aklıma ilk gelenlerden biri fotoğraf albümleri.Eskiden birisinin düğünü olurdu giderdik oynardık eğlenirdik sevdiklerimizin mutlu gününde bolca Fotoğraf çekilirdik. Sonrada fotoğrafçıdan resimleri alır ve bir albüm yapar saklardık ara ara bakar geçerdik. Şimdiyse dijital fotoğraf makineleri ile resimleri alıp facebookta albüm oluşturup ordan bakıyoruz.
E-Ticaret sitelerini ele alalım bu seferde eskiden dışarıya çıkardık alışveriş yapmaya.Çarşı pazar ne ihtiyacımız varsa ona yönelik olarak dolaşırdık ve alışverişimizi yapardık.Bugün bunların yerini web siteleri aldı. Ürünleri kategorilere göre listeliyorlar ve sepete ekleyip ödememizi yapıyoruz üründe bize geliyor.
Albümler oluşturuyoruz alışveriş yapabiliyoruz ve dahasıda var tabiki bunlar sadece örnekti.Gerçekten tek farkı bu örneklerde ortamın dijital olması.Herşeyin dijital ortama taşınması.
Örnekleri düşününce ben OOP'i gerçek hayatı programlamak olarak görüyorum.Bunun için iyi bir gözlem yapmak gerekli tabikide.
Eskiden posta atardık şimdi ePosta atıyoruz arkadaşlar böyle bir örneğimiz daha var elimizde yine gerçekte olan birşey dijital ortama geçmiş durumda.
1-Mektubu kim yazar ?
2-Mektubu yazdıktan sonra gider posta kutusuna atar.
3-Postacı gelip alır ve adrese götürür.
4-Posta atılan kişide mektubu okur.
İnsan mektubu yazar bir nesne oluşturur.
Posta Kutusuna atar posta kutusuda başka bir nesnedir.
Postacı gelir mektup nesnesinin üzerindeki bir değeri okur bu değer adres bilgisidir ve adrese götürür.
Son olarakta diğer kişi mektubu alır ve okur.Nesne ile iletişime geçer arkadaşlar.
Gerçek dünya nesneler bu nesnelerin birbirleri ile iletişimi ile geçiyor.Yani gerçek hayat nesnelerden oluşuyor ve nesnelerin değerleri (Biz cihazın seri numarası) ve davranışlarından (işlev ve fonksyonları) ibarettir.Şöyle diyelim o zaman karşınıza bir nesne alın ve özelliklerini düşünün birde bu nesnenin bir işlevi vardır bir işe yarar bunuda fonksyon olarak düşünün işte bu nesneyi dijital ortama geçirmeye biz OOP diyoruz.
OOP programlamada nesneler dizayn ederek ve bu nesnelere işlemler yükleyerek programlama yapmamızı sağlayan bir tekniktir.
Okuduğunuz için teşekkür ederim arkadaşlar.
Bugün internette dolaşırken birçok farklı yapı birçok farklı site görebiliriz.Birçoğu günlük hayatımızın içerisinden kesit alınıp programlanmıştır.Bunlarla ilgili birkaç örnek vermek istiyorum dostlar.
Facebook'u ele alalım bolca özelliği var aklıma ilk gelenlerden biri fotoğraf albümleri.Eskiden birisinin düğünü olurdu giderdik oynardık eğlenirdik sevdiklerimizin mutlu gününde bolca Fotoğraf çekilirdik. Sonrada fotoğrafçıdan resimleri alır ve bir albüm yapar saklardık ara ara bakar geçerdik. Şimdiyse dijital fotoğraf makineleri ile resimleri alıp facebookta albüm oluşturup ordan bakıyoruz.
E-Ticaret sitelerini ele alalım bu seferde eskiden dışarıya çıkardık alışveriş yapmaya.Çarşı pazar ne ihtiyacımız varsa ona yönelik olarak dolaşırdık ve alışverişimizi yapardık.Bugün bunların yerini web siteleri aldı. Ürünleri kategorilere göre listeliyorlar ve sepete ekleyip ödememizi yapıyoruz üründe bize geliyor.
Albümler oluşturuyoruz alışveriş yapabiliyoruz ve dahasıda var tabiki bunlar sadece örnekti.Gerçekten tek farkı bu örneklerde ortamın dijital olması.Herşeyin dijital ortama taşınması.
Örnekleri düşününce ben OOP'i gerçek hayatı programlamak olarak görüyorum.Bunun için iyi bir gözlem yapmak gerekli tabikide.
Eskiden posta atardık şimdi ePosta atıyoruz arkadaşlar böyle bir örneğimiz daha var elimizde yine gerçekte olan birşey dijital ortama geçmiş durumda.
1-Mektubu kim yazar ?
2-Mektubu yazdıktan sonra gider posta kutusuna atar.
3-Postacı gelip alır ve adrese götürür.
4-Posta atılan kişide mektubu okur.
İnsan mektubu yazar bir nesne oluşturur.
Posta Kutusuna atar posta kutusuda başka bir nesnedir.
Postacı gelir mektup nesnesinin üzerindeki bir değeri okur bu değer adres bilgisidir ve adrese götürür.
Son olarakta diğer kişi mektubu alır ve okur.Nesne ile iletişime geçer arkadaşlar.
Gerçek dünya nesneler bu nesnelerin birbirleri ile iletişimi ile geçiyor.Yani gerçek hayat nesnelerden oluşuyor ve nesnelerin değerleri (Biz cihazın seri numarası) ve davranışlarından (işlev ve fonksyonları) ibarettir.Şöyle diyelim o zaman karşınıza bir nesne alın ve özelliklerini düşünün birde bu nesnenin bir işlevi vardır bir işe yarar bunuda fonksyon olarak düşünün işte bu nesneyi dijital ortama geçirmeye biz OOP diyoruz.
OOP programlamada nesneler dizayn ederek ve bu nesnelere işlemler yükleyerek programlama yapmamızı sağlayan bir tekniktir.
Okuduğunuz için teşekkür ederim arkadaşlar.
11 Nisan 2012 Çarşamba
C#'da Resmi Siyah Beyaz Yapma
Merhaba arkadaşlar başlıktanda anlaşılacağı gibi bir resmi siyah beyaz nasıl yaparız bunu görücez.Burda yapıcağımız işlemi pek profesyonel olarak adlandıramam Photoshop vb. tarzda hızlıda olmuycak ama en iyi şekilde bize sonuç döndürücek diyebilirim.İşlem nasıl olucak derseniz yüklüyeceğimiz resmi pixel pixel alıp üstünde işlem yapıp sonra yeni bir resim eklemek şeklinde izah edebilirim.Bilgisayarda renk sistemi
RGB 'dir arkadaşlar ve bu sistem üzerinden renklerle oynuycaz.Nedir bu RGB derseniz arkadaşlar R - kırmızı G - yeşik ve B de mavi renkleri temsil eder.Bilgisayarda ekranımıza gelen her pixel de bu renklerin karşımından oluşmuş yeni bir rengi görürüz.Her pixel içinde RGB değeri vardır ve başta da söylediğim gibi tek tek bu pixeller üzerinde oynama yapıcaz.Gri tonlama içinsede RGB değerlerinin toplamının ortalamasını alıcaz ve yeni RGB değeri olarak aktarırız.Kodlar içinde programın can alıcı kısımlarını sizlere anlatıcam arkadaşlar böylece daha anlaşılır olucağını düşünüyorum arkadaşlar.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace BitmapSınıfı
{
public partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
string
DosyaYolu = "";
Bitmap
bmp = null;
private
void button1_Click(object
sender, EventArgs e)
{
if
(opf.ShowDialog() == DialogResult.OK)
{
DosyaYolu = opf.FileName;
bmp = new
Bitmap(DosyaYolu);
pcb.Image = bmp;
}
}
private
void button2_Click(object
sender, EventArgs e)
{
if
(!backgroundWorker1.IsBusy)
{
backgroundWorker1.RunWorkerAsync("SB");
}
toolStripProgressBar1.Visible = true;
}
private
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs
e)
{
switch
(e.Argument.ToString())
{
case
"SB": SiyahBeyazYap(); break;
case
"KK": KirmiziYap(); break;
default:
break;
}
}
private
void SiyahBeyazYap()
{
//Buradaki
İç içe 2 For döngümüz resim üzerinde pixel pixel gezmemizi sağlar
for
(int y = 0; y < bmp.Height; y++)
{
for
(int x = 0; x < bmp.Width; x++)
{
Color
eski = bmp.GetPixel(x, y);//X ve Y Koordinatlarındaki
Pixel'i Alır.Bu değeri Color tipinde bir değişkene atar.
int
ortalama = (eski.R + eski.G + eski.B) / 3; //Color
tipindeki değerin RGB'si ve bunların değerleri vardır bunların ortalaması alınır.
Color
yeni = Color.FromArgb(ortalama, ortalama,
ortalama);//Aldığımız ortalama değeri yeni bir renk
oluşturmak için Color tipinde bir değişkene aktarırız.
bmp.SetPixel(x, y, yeni);//son olarakda önceden değerini aldığımız X ve Y
koordinatlarındaki Pixeli Geri yükleriz.
}
}
pcb.Image = bmp;//tüm işlemler bittikten sonrada PictureBox nesmize yeni
resmimizi aktarırız.
}
private
void KirmiziYap()
{
for
(int y = 0; y < bmp.Height; y++)
{
for
(int x = 0; x < bmp.Width; x++)
{
Color
eski = bmp.GetPixel(x, y);//renk değerlerinin
ortalamasını alırsan gri tonu oluşur.
int
ortalama = (eski.R + eski.G + eski.B) / 3;
Color
yeni = Color.FromArgb(eski.A, 255, ortalama,
ortalama);
bmp.SetPixel(x, y, yeni);
}
}
pcb.Image = bmp;
}
private
void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs
e)
{
toolStripProgressBar1.Visible = false;
}
private
void Kırmızımsı_Click(object
sender, EventArgs e)
{
if
(!backgroundWorker1.IsBusy)
{
backgroundWorker1.RunWorkerAsync("KK");
}
toolStripProgressBar1.Visible = true;
}
}
}
Program ile iglili Video :
Umarım işinize yarar arkadaşlar.Okuduğunuz için teşekkürler.
10 Nisan 2012 Salı
C#'da Adam Asmaca Oyunu
Merhaba arkadaşlar hepimizin bildiği adam asmaca oyunun bir örneğini yaptım ve sizlerle paylaşıyorum umarım yardımcı olabilmişimdir.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AdamAsmaca
{
public partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
string[]
Kelimeler = { "ARABA", "BUZDOLABI" };
char[]
Harfler = { 'A', 'B',
'C', 'Ç',
'D', 'E',
'F', 'G',
'Ğ', 'H',
'I', 'İ',
'J', 'K',
'L', 'M',
'N', 'O',
'Ö', 'P',
'R', 'S',
'Ş', 'T',
'U', 'Ü',
'V', 'Y',
'Z' };
Random
rnd = new Random();
private
void Form1_Load(object
sender, EventArgs e)
{
}
private
void KelimeYarat()
{
silme:
foreach
(Control item in
flowLayoutPanel1.Controls)
{
if
(item is Button)
{
if
(Convert.ToInt32(item.Tag) == 0)
{
item.Dispose();
goto silme;
}
}
}
git:
foreach
(Control item in
this.Controls)
{
if
(item is Label)
{
if
(Convert.ToInt32(item.Tag) == 0)
{
item.Dispose();
goto git;
}
}
}
var
kelimeNo = rnd.Next(0, Kelimeler.Length);
this.Tag
= kelimeNo;
for
(int i = 0; i < Kelimeler[kelimeNo].Length;
i++)
{
Label
lbl = new Label();
lbl.Size = lblOrnek.Size;
lbl.Top = 80;
lbl.Left = 280 + (i * 34);
lbl.Text = lblOrnek.Text;
lbl.Font = lblOrnek.Font;
this.Controls.Add(lbl);
}
for
(int i = 0; i < Harfler.Length; i++)
{
Button
btn = new Button();
btn.Text = Harfler[i].ToString();
btn.Size = btnOrnek.Size;
btn.BackColor = Color.White;
btn.Click += new EventHandler(btn_Click);
btn.Tag = 0;
flowLayoutPanel1.Controls.Add(btn);
}
}
int
yanlis = 0;
int
bulunan = 0;
void
btn_Click(object sender, EventArgs e)
{
bool
deger = false;
Button
Tiklanan = sender as Button;
Tiklanan.Enabled = false;
var
sayac = 0;
char[]
HarfHarf = Kelimeler[Convert.ToInt32(this.Tag)].ToCharArray();
foreach
(var item in
HarfHarf)
{
if
(item == Convert.ToChar(Tiklanan.Text))
{
var
lblHArf = new Label();
lblHArf.Top = 70;
lblHArf.Left = (sayac * 33)
+ 285;
lblHArf.Size =
lblHarfOrnek.Size;
lblHArf.Font =
lblHarfOrnek.Font;
lblHArf.Text =
item.ToString();
this.Controls.Add(lblHArf);
lblHArf.BringToFront();
deger = true;
bulunan++;
}
sayac++;
}
if
(deger == false)
{
switch
(yanlis)
{
case
0: pictureBox1.Visible = true; break;
case
1: pictureBox2.Visible = true; break;
case
2: pictureBox3.Visible = true; break;
case
3: pictureBox4.Visible = true; break;
case
4: pictureBox5.Visible = true; break;
case
5: pictureBox6.Visible = true;
MessageBox.Show("Tekrar Dene
!!!");
KelimeYarat();
break;
default:
break;
}
yanlis++;
}
if
(bulunan == HarfHarf.Length)
{
MessageBox.Show("Helal Sana !!!");
}
}
private
void button1_Click(object
sender, EventArgs e)
{
yanlis = 0;
bulunan = 0;
pictureBox1.Visible = false;
pictureBox2.Visible = false;
pictureBox3.Visible = false;
pictureBox4.Visible = false;
pictureBox5.Visible = false;
pictureBox6.Visible = false;
KelimeYarat();
}
}
}
Kaydol:
Kayıtlar (Atom)




