C# .Net giriş
Bölüm Yetkilileri: exixiz, realdogus
Yeni Başlık Gönder Cevap Gönder 1. sayfa (Toplam 1 sayfa) [Bu başlıkta 5 mesaj bulunuyor] « Önceki başlıkSonraki başlık »
 Yazar  Mesaj
NeverLand
RaJaz
Editör


Kayıt: 16.10.2005
Üye No: 32,658
Şehir: Deli Çoban
Gizli




Tek mesaj gösterimi Tek mesaj gösterimi Tarih: Cmt Kas 18, 2006 1:24 am Mesaj: #1



C# .Net



C# , C ve C++ dillerinden çıkma olup, basit, modern, nesne tabanlı(object oriented) ve çeşit-güvenirlikli(type-safe) bir programlama dilidir. C#, Visual Basic dilinin kolaylığına ve C nin gücüne sahip diyebiliriz. C# progralama dilini kullanarak program yazabilmek için Microsoft Visual Studio.NET'i kullanabilirsiniz. Visual Studio.NET C#'ın yanısıra VB.NET ve Visual C++ programlama dillerini ve bunun yanında VBScript ve JScript script dillerini içerir. Bütün bu diller NGWS (Next Generation Windows Services ) platformu üzerine yapılandırılmış ve bu platformun gücünü ve kolaylıklarını kullanmaktadırlar. NET yazılım geliştirme Kit'i bize CLS (Comman Language Subset) uyumlu diller (yani .NET dilleri) ve class kütüphanelerini kullanabilme imkanı sunar. Bunun anlamı C# yeni bir dil olmasına rağmen Visual Basic ve Visual C++ 'ın kullandığı zengin class kütüphaneleri kullanabilmesi demektir.

Class

C# programları, her biri fonksiyon kod birimi olan sınıflardan (class) oluşur. Visual C# .Net’te bir class, class anahtar kelimesi ve class ismi ile tanımlanır.

class Araba{}

Her C# programı için bir giriş noktası(entry point) gerekmektedir. Bu şekilde program nereden çalışması gerektiğini bilecektir. Aşağıdaki örnekte Main fonksiyonu bunu belirtir. Program ilk çalıştığında direkt Main fonksiyonunu çalıştıracaktır.

class Car
{
static void Main()
{
}
}

Değişkenler ve Sabitler

Değişken tanımlamak için kullanılan sentaks:

VeriTipi DeğişkenIsmi;

Aynı veri tipine sahip değişkenleri, aynı satırda tanımlamak için kullanılan sentaks aşağıda belirtilmiştir.

VeriTipi DeğişkenIsmi_1, DeğişkenIsmi_2, DeğişkenIsmi_n ;
Sabitler ve değişkenlerin tanımlanması ve bunlara değer ataması bir çok farklı şekilde olabilir. Bunları aşağıdaki örnekte görebiliriz.

using System;
class sayi
{
static void Main(){
int a= 2; //Bir integer tanımlanıyor ve aynı anda değer atanıyor
int b = 4, c = 5; //İki farklı integer tanımlanıyor ve aynı anda farklı //değerler atanıyor.
const d = 6; // Bir sabit tanımlanıyor ve değer atanıyor.
const e = 5, f = 7;
int g; // Bir integer sadece tanımlanıyor
int h, j;
g = 54; // Daha önceden tanımlanmış bir integer a değer atanıyor.
h = 32;
j = 12;
}
}

Veri İsimleri

C# büyük/küçük harf duyarlılığına sahiptir (case-sensitive). ODA, oda ve Oda farklı isimler olarak kabul edilir. Örneğin temel fonksiyon (main function) her zaman Main şeklinde yazılır.



Temel Tipler

String

Temel veri tiplerinden biri olan string, C#’ta string anahtar kelimesi ile tanımlanır.

string Mesaj;

String tanımlama ve ilklendirme (initialize) örnekleri:

string Bos = "";
string Sinif = "B";
string Isim = "Anil Yugen";
string Mesaj = "Hos geldiniz! ";


Değişkenler

Boolean tipi için bool anahtar kelimesi kullanılır. Boolean değişken tanımlama ve true/false değeri atamaya örnek:

bool Cevap1, Cevap2;

Cevap1 = true;
Cevap2 = false;

Karakterler

Temel veri tiplerinden karakter(character) char anahtar kelimesi ile gösterilir. İngiliz alfabesindeki harfler ( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) ve diğer dillerdeki ekstra semboller, rakamlar ve ` ~ ! @ # $ % ^ & * ( ) - _ = + [ { ] } \ | ; : ' < ? . / , > " sembolleri gibi herhangi bir Unicode karakteri (16 bit), Visual C# .Net’te char veri tipi ile tanımlanır.

Char tipli bir değişken ilklemek için karakter tek tırnak işareti içine alınır. Örnek:

char Sinif = 'A';
Enumerator

C#’ta enumerator tanımlama:
enum Renk { sari, turuncu, mavi };

C#’ta enumerator’lar class içinde ancak fonksiyon dışında oluşturulmalıdır. Her eleman bir doğal sayı değeri taşır. C#’ta enumerator elemanlarına karakter değeri (char tipli) atanamaz.

Bir enumerator tanımladıktan sonra, bu enumarator tipi ile bir değişken tanımlamak ve bu değişkene enumerator elemanlarından birini atamak da mümkündür. Örnek:

using System;

class Ajanda
{
enum gunler { pazar, pazartesi, sali, carsamba, persembe, cuma, cumartesi};

static void Main()
{
gunler gun = gunler.carsamba ;
}
}

Bir değişkenin taşıdığı değeri write( ) metodunu kullanarak öğrenebiliriz. Örnek:

using System;

class Ajanda
{
enum gunler { pazar, pazartesi, sali, carsamba, persembe, cuma, cumartesi};

static void Main()
{
gunler gun = gunler.carsamba ;
Console.WriteLine(gun);
}
}

Konsolda gösterilen:
carsamba

Her elemana otomatik olarak bir doğal sayı değeri atanır. Bunun sonucunda ilk elemanın değeri 0, ikinci elemanın değeri 1, üçüncü elemanın değeri 2 olur, vb. Elemanlara bu değerler dışında da değer atamak mümkündür.

enum Renk { sari=5, turuncu, mavi };

Yukarıdaki atamadan sonra sari 5, turuncu 6, mavi ise 7 değerini alır. Birden fazla elemana da değer atamak mümkündür. Örnek:

enum Renk { sari=3, turuncu=8, mavi };

Bu atamadan sonra sari 3, turuncu 8 ve mavi 9 değerini alır.






Aşağıdaki tablo önceden tanımlanmış tipler (predefined types) ve örnekleri göstermektedir.

C# Tipi Açıklama .Net Framework (System) Tipi Değer Aralığı Tanımlama ve Değer Atama
object Diğer tüm çeşitlerin temel yapısı System.Object - object o = New Class1();
string String çeşidi: Bir string Unicode karakterler topluluğudur. (System.String - string s = "Merhaba!";
sbyte 8-bit signed tam sayı System.Sbyte -128’den 127’e kadar sbyte deger = 12;
short 16-bit signed tam sayı System.Int16 -32768’den 32767’e kadar short deger = 12;
int 32-bit signed tam sayı System.Int32 -2147483648’den 2147483647’e kadar int deger = 12;
long 64-bit signed tam sayı System.Int64 -9223372036854775808’den 9223372036854775807’e long deger = 12;
byte 8-bit unsigned tam sayı System.Byte 0’dan 255’e byte deger = 12;
ushort 16-bit unsigned tam sayı System.Uint16 0’dan 65535’e ushort deger = 12;
uint 32-bit unsigned tam sayı System.UInt32 0’dan 4294967295’e uint deger = 12;
ulong 64-bit unsigned tam sayı System.Uint64 0’dan 18446744073709551615’e ulong deger = 12;
float Tek-yönlü floating Point Type System.Single Yaklaşık olarak ±1.5 x 10-45 ‘ten ±3.4 x 1038 ‘e float deger = 1.23;
double Çift yönlü floating type System.Double Yaklaşık olarak ±5.0 x 10-324 to ±1.7 x 10308 double deger = 1.23;
bool Boolean değer: True veya False olabilir. System.Boolean true ya da false bool deger = True;
char Karekter Type : Unicode karekter System.Char Herhangi bir Unicode karakteri (16 bit) char a = 'a';
decimal 28 anlamlı basamaktan oluşan sayı System.Decimal Yaklaşık olarak ±1.0 x 10-28 to ±7.9 x 1028 decimal deger = 1.23;



METOT (METHOD)
C# programları, her biri fonksiyon kod birimi olan sınıflardan (class) oluşur. Class'lar içinde yer alan ve belli bir işlemi gerçekleştirmek için kullandığımız üyelere de metot (method) denir. Metotları programlar içinde tıpkı birer komut gibi kullanabilir ve nesnelerimiz üzerinde çeşitli işlemleri yapabiliriz.
Metotları Tanımlamak
Bir fonksiyon, bir yordam ya da bir procedure olarak düşünebileceğimiz, belli bir ad altında bir araya getirilmiş C# deyimlerine metot denir. Örnek:
using System;
class Merhaba
{
static void Deneme()
{
Console.WriteLine("Merhaba!");
}

static void Main()
{
Console.WriteLine("Main Metot");
}

}
Main metodu, C# programı için uygulamanın başlangıç noktasıdır. WriteLine da bir metotdur, ancak Console sınıfının bir komutu gibi kullanılır. Deneme metodu ise Merhaba sınıfına ait bir metotdur.
C#'da bütün metotlar bir sınıfa ait olmalıdır. Diğer dillerde (Visual Basic gibi) global olarak bir fonksiyon ve sub tanımı yapılabilmektedir.
Metot Yapısı
static void metot_adı()
{
//metodun kodu
}

Bir metodun adı tıpkı bir değişken adı gibi verilir. Bu arada metot adları küçük/büyük harf duyarlıdır (case-sensitive).
Bunun dışında metot kodu, bir satır deyim bile olsa { } içinde yazılır.
Metotların kullanımında diğer bir konu da parametrelerdir. Parametreleri metot adından sonra parantez içinde belirtilirler.
Deneme();
Console.WriteLine("Merhaba!");

Parametre Kullanımı
Parametreler metoda bilgi geçirilmesini sağlar. Bir metot tanımlandığında parantez içinde parametre listesine yer verilir.
Örnek:
static int Topla(int a , int b) //metot tanımlama
{
return a + b;
}

static void Main( )
{
Console.WriteLine(Topla(5,10)); //metot çağırma

}
Topla metodu daha önceki örneklerden farklı olarak int tipi ile tanımlanmıştır. Böylece metodun integer bir değer döndüreceğini belirtilmiştir. Metod değer döndürme işlemini return ifadesi ile gerçekleştirir.
Metotlar -döndürecekleri değerin tipine göre- double, string gibi temel tiplerden biri, dizi ve hatta bir class tipi ile de tanımlanabilir. Void anahtar kelimesi ile tanımlanırsa herhangi bir değer döndüremez (böylece return ifadesi içermeleri gerekmez).
Parametre Gönderme
C#’ta metotlara parametre göndermek için iki yöntem kullanılabilir: Değer gönderme ve referans gönderme. Yukarıdaki örnekte Topla() metodunda değer gönderme yapılmaktadır. Aşağıdaki örnekte ise YerDegistir metodu argüman olarak değişkenlerin referansını alır.

using System;
class Degistir {
static void YerDegistir(ref int x, ref int y) {
int t = x;
x = y;
y = t;
}
static void Main() {
int a = 1;
int b = 2;

Console.WriteLine("once: a = {0}, b = {1}", a, b);
YerDegistir(ref a, ref b); //ref modifier’ı metot cagirilirken de kullanılır
Console.WriteLine("sonra: a = {0}, b = {1}", a, b);
}
}

Çıktı:

once: a=1, b=2
sonra: a=2, b=1

Bloklar

Bloklar işlem gruplarıdır ve {} işaretleri arasına yazılırlar. Bu sayede herhangi bir for döngüsünün yada buna benzer başka bir işlemin hangi komut satırlarını içerdiği anlaşılır.

using System;
Class kuti
{ // Blok 1 başlıyor
static void Main(){ // Blok 2 başlıyor
Console.WriteLine("kuti");
} // Blok 2 Son
} // Blok 1 Son




Operatörler


Operatör Anlam Örnek Tersi
== Eşit a == b !=
!= Eşit Değil 12 != 7 ==
< Küçük 25 < 84 >=
<= Küçük Eşit e <= f >
> Büyük 248 > 55 <=
>= Büyük Eşit Deg1 >= Deg2 <



Döngüler (Loop Statements)

while

While statement bir işlemi herhangi bir boolean önerme sağlanıncaya kadar yapmak için kullanılır. Örnek:

int i = 0;
while ( i < 5 )
{
Console.WriteLine ( i );

++i;
}

Konsolda görülecek sonuç:
0
1
2
3
4


for

For statement’ta işlem belirtilen önerme doğru olduğu sürece yapılır.

int i = 0;
for ( int i = 0; i < 5; i++ )
{
Console.WriteLine ( i );
}

Konsolda görülecek sonuç:
0
1
2
3
4




do ... while

Bir işlemi bir yada daha fazla kez yapmak için kullanılır.

int i = 0;
do
{
Console.WriteLine ( i );

i++;
}
while ( i < 5 );

Do ... while döngüsünün while döngüsünden tek farkı koşulun doğruluğunun döngünün sonunda kontrol edilmesidir.


foreach

Bir koleksiyon(collection) içerisindeki elemanları ayırıp her eleman için işlemleri tekrarlar.

string [] isimler = new string[] { "Ali", "Zeynep", "Veli", "Deniz" };
foreach ( string isim in isimler )
{
Console.WriteLine ( isim );
}

Konsoldaki görüntü:
Ali
Zeynep
Veli
Deniz


Koşullu Operatörler (Conditional Operators)

if ... else

Örnek:

using System;
class ifDeneme
{
static void Main(string[] a){
if(a.Length == 0)
{
Console.WriteLine("Gelen string boş");
}
else
{
Console.WriteLine("Gelen string = {0}",a);
}
}





İş Akışı İfadeleri (Flow Control Statements)

break

En yakın switch, while, do, for veya foreach ifadesinden çıkılmasını sağlar. Örnek:

string [] isimler = new string[] { "Ali", "Zeynep", "Veli", "Deniz" };
foreach ( string isim in isimler )
{
Console.WriteLine ( isim );

if ( isim == "Veli" )
break;
}

Yukarıdaki örnekte isimler string’i içindeki ilerleme Veli elemanına ulaşıldığında durur ve program döngü dışından devam eder. Konsolda elde eilecek görüntü:

Ali
Zeynep
Veli

continue

Continue ifadesi de döngülerde kullanılır. Bu ifadeye ulaşıldığında, program ifadeden sonraki satırla devam edeceğine döngünün bir sonraki adımına geçer. Örnek:

string [] isimler = new string[] { "Ali", "Zeynep", "Veli", "Deniz" };
foreach ( string isim in isimler )
{
if (isim == "Zeynep" )
continue;

Console.WriteLine (isim);
}

Konsolda görünen:
Ali
Veli
Deniz


switch

Verilen herhangi bir ifadenin aldığı değere göre işlemleri yapar. Birden fazla if ... else ifadesi yerine kullanılır. Örnek:

int i = 6;

switch ( i )
{
case 5:
Console.WriteLine( "Cevap : " + 5 );
break;
case 6:
Console.WriteLine( "Cevap : " + 6 );
break;
case 3:
Console.WriteLine( "Cevap : " + 3 );
break;
case 4:
Console.WriteLine( "Cevap : " + 4 );
break;
default:
Console.WriteLine( " Cevap : " + i );
break;
}

Konsolda görünen:

Cevap : 6


return

Return ifadesi caller(yani çağıran) fonksiyona bulunduğu fonksiyondan değer gönderir. Return bir değer gönderen fonksiyonlarda kullanılır. Void fonksiyonlarda kullanılamaz. Çünkü void fonksiyon herhangi bir değer göndermez.



throw

Throw ifadesi bir istisna (exeption) atar.


try

Try statement bir blok içerisindeki işlemler sırasında oluşan bir exceptionı yakalamak için kullanılır.


goto

Goto Statement'ı ise program içerisinde atlamalarda kullanılır.

using System;
class gotoDeneme
{
static void Main(){
int i = 2;
goto B:
A: i = i + 1;
return;
B: i = i * i;
goto A:
}
}

Bu işlem sonucu i’nin alacağı değer 5 tir.






Diziler

C#’ta diziler tek yönlü de (single-dimensional) olabilir çok yönlü de (multi-dimensional). Bunun yanında C# jagged ve rectangular dizilerin ikisini de destekler. Tek yönlü bir dizi oluşturan örnek program aşağıda verilmiştir.

using System; //kullandığımız namespace
class Dizi //class adı
{
static void Main() { //programın giriş noktası
int[] dizi = new int[5]; //yeni bir dizi tanımlıyoruz. Bu dizi 5 elemanlı ve değer olarakta integer değer alıyor. [] işareti bunun bir array olduğunu ve int de bunun değerinin integer olduğunu belirtiyor.
for (int i = 0; i < dizi.Length; i++) //0 dan dizinin uzunluğuna kadar bir döngü kuruyoruz.
dizi[i] = i * i; // dizinin i. elemanına i * i değerini atıyoruz.
for (int i = 0; i < dizi.Length; i++) // yine 0 dan dizi uzunluğuna kadar bir for döngüsü oluşturuyoruz.
Console.WriteLine("dizi[{0}] = {1}", i, dizi[i]); //Ekrana dizinin elemanını ve değerini yazdırıyoruz. Burada dizi[{0}] ve = {1}demesinin nedeni buralara yazılacak bilginin değişken olması ve bunu yazarken daha sonra ,i,dizi[i] deki sıraya göre yazılmasıdır. Yani 0 ın yerine ilk değişken yani i 1 in yerine ise 2. değişken yani dizi[i] yazılacaktır.
}
}

Yukarıdaki programın çıktısı:
dizi[0] = 0
dizi[1] = 1
dizi[2] = 4
dizi[3] = 9
dizi[4] = 16

Tek yönlü ve çok yönlü dizi oluşturma örnekleri:

class Dizi
{
static void Main() {
int[] a1; // tek-yönlü dizi ve değerler integer
int[,] a2; // 2-yönlü dizi ve değerler integer
int[,,] a3; // 3-yönlü dizi ve değerler integer
int[][] j2; // "jagged" dizi: dizinin dizisi
int[][][] j3; // dizinin dizisinin dizisi
}
}
Dizilere değerlerinin başlangıçta verilmesi ise aşağıdaki gibi yapılır.
int [] array1 = {1,2,3};






_________________
bir kaptanım çünkü kağıt gemilerden emekli ..
 Kullanıcı bilgilerini göster Özel mesaj gönder Kullanıcının web sitesini ziyaret et MSNM Alıntıyla Cevap Gönder Başa dön 
_MuSTi_



Kayıt: 14.06.2005
Üye No: 14,464
Şehir: İzmiR
Offline




Tek mesaj gösterimi Tek mesaj gösterimi Tarih: Cmt Arl 16, 2006 11:33 pm Mesaj: #2

paylaşımın için teşekkür ederim ellerine sağlık






_________________
hayat yaşandığı kadardır gerisi ya hatıralarda bir iz yada hayallerde bir umuttur
 Kullanıcı bilgilerini göster Özel mesaj gönder AIM YIM MSNM Alıntıyla Cevap Gönder Başa dön 
heawenly



Kayıt: 08.12.2005
Üye No: 39,486
Offline




Tek mesaj gösterimi Tek mesaj gösterimi Tarih: Pzr Arl 17, 2006 10:43 pm Mesaj: #3

teşekkürler.


 Kullanıcı bilgilerini göster Özel mesaj gönder Alıntıyla Cevap Gönder Başa dön 
sevcancan



Kayıt: 24.10.2007
Üye No: 93,311
Offline




Tek mesaj gösterimi Tek mesaj gösterimi Tarih: Çar Ekm 24, 2007 3:13 pm Mesaj: #4

Teşekkürler!!!


 Kullanıcı bilgilerini göster Özel mesaj gönder Alıntıyla Cevap Gönder Başa dön 
YagmuRTaneSi
'Yara Bende'
Bölüm Yöneticisi


Kayıt: 29.02.2008
Üye No: 112,170
Şehir: İstanbul
Offline




Tek mesaj gösterimi Tek mesaj gösterimi Tarih: Pzr Ekm 11, 2009 4:18 pm Mesaj: #5

Sanırım derste kafamın takıldığı sorunlar olduğunda burdan ulaşabilirim..
Teşekkürler Nev.







_________________
Seni hala beklemek aklıma hakaret mi?
Böyle bekleyebilmek yoksa bir marifet mi?
 Kullanıcı bilgilerini göster Özel mesaj gönder Alıntıyla Cevap Gönder Başa dön 
Mesajları göster:   
Yeni Başlık Gönder Cevap Gönder 1. sayfa (Toplam 1 sayfa) [Bu başlıkta 5 mesaj bulunuyor]
« Önceki başlıkSonraki başlık »


Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız
Bu foruma eklenti dosyaları gönderemezsiniz
Bu forumdaki dosyaları indiremezsiniz
TurkBoard çerezlerini temizle  
Göster | Gizle