Sayfalar

ToolBars

Get our toolbar!

11 Mayıs 2013 Cumartesi

CSharp Metotlar


Metotlar içlerinde bir ve ya birden fazla ifadeler olan kod satırlarıdır. Buna bir programda iş yapan asıl kodların bulunduğu kısım da diyebiliriz.
Genel olarak söz dizimi altta görüldüğü gibidir. Ama duruma göre değişiklik gösterebilir.

Syntax:

erişim static donusum-tipi metodun-ismi ( tipi isim, tipi isim )
{
//çalışacak kodlar.
}


Resim: csharp-metot-01

csharp-metot-01


Yukarda resimde genel bir metot söz dizimi yapılmış olup açıklaması altta yapılmıştır.

erişim:

Bu metoda nasıl erişileceğini gösteren "Public", "Private", "Protected", "Internal", "Protected Internal" anahtar kelimelerinden biri yazılabilir.
Eğer sadece bulunduğu uygulama içinde geçerli olacak ise bu kısım boş bırakılabilir.

Örnek:

public void Hesapla()
{
}


static:  

Genel olarak bir uygulama içinde bir sınıf nesnesi oluşturmadan o sınıfa ait metot, özellik gibi elemanlarına erişmek için kullanılan bir anahtar kelimedir.


Örnek:
static void Hesapla()
{
}

donuşum-tipi:

Eğer metot bir değer döndürmeyecekse "Void" anahtar kelimesi kullanılır.

Örnek:
public void Hesapla()
{
}

Eğer bir değer döndürecekse döndürülecek olan (int, string gibi) değer yazılır.

Örnek:
public int Hesapla()
{
}

metodun-ismi:  

Metot için bir isim yazılır.

Örnek:
public int Hesapla()
{
}

parametreler:

Aynı değişken tanımlamalarda olduğu gibi önce değerin tipi yazılır sonra bu değerin adı yazılır. Birden fazla parametrelerde aralarına virgül konulur.

public int Hesapla(int sayi1, int sayi2)
{
}

Genel özellikleri:

Her metodun bir ismi vardır ve o isimle de çağrılır.
C#  anahtar kelimeleri ve Main haricinde istenilen bir isim kullanılabilir.
Eğer bir metot değer döndürmüyorsa dönüş değeri olarak "void" kullanılmalıdır.
Bir metoda aktarılan değere arguman denir. Metot içinde argümanı kabul eden değişkene parametre denir.
Parametre olarak tip ve tanımlayıcılar aralarına virgül konularak yazılır.
Parametreler, metot çağrıldığında metoda aktarılan argümanların değerini alan değişkenlerdir.
Metotlar hiç parametre de almayabilir.

Metottan çıkış:

İki koşulda metottan çıkış olur. 
1.Metodun kapanan küme parantezine gelmesi.
2.Return ifadesinin çağrılması. Kod içinde "return" ifadesi çağrıldığında metodun geri kalan kodları atlanarak metodu çağıran koda dönüş yapılır.

Bu açıklamalardan sonra örnek uygulamalar altta verilmiştir.

Örnek 1: Değer döndürmeyen metot (void)
using System;
namespace Metotlar
{
class Program
{
static void Merhaba()
{
Console.WriteLine("Merhaba");
}
static void Main(string[] args)
{
Merhaba();
Console.ReadLine();
}
}
}

Örnek 2: Değer döndüren metot. Bu örnekte değer döndürme "int" tipindedir.

using System;
namespace Metotlar
{
class Program
{
static int topla()
{
int sayi1 = 10;
int sayi2 = 22;
return sayi1 + sayi2;
}
static void Main(string[] args)
{
int sonuc = topla();
Console.WriteLine(sonuc);
Console.ReadLine();
}
}
}


Örnek 3: Parametre olarak "int" değer alan metot. 
using System;
namespace Metotlar
{
class Program
{
static int topla(int sayi1, int sayi2)
{
return sayi1 + sayi2;
}
static void Main(string[] args)
{
int toplam = topla(12, 25);
Console.WriteLine(toplam);
Console.ReadLine();
}
}
}




Örnek 4: Parametre olarak "string" değer alan metot. 
using System;
namespace Metotlar
{
class Program
{
static void Ad(string isim)
{
Console.WriteLine(isim);
}
static void Main(string[] args)
{
Ad("akobey");
Console.ReadLine();
}
}
}



Örnek 5: Parametre olarak "string" değer alan metot.

using System;
namespace Metotlar
{
class Program
{
static void Ad(string isim)
{
Console.WriteLine("Merhaba " + isim);
}
static void Main(string[] args)
{
Ad("akobey");
Console.ReadLine();
}
}
}

 

Örnek 6: Parametre olarak "int" ve "char" değer alan metot.
using System;
namespace Metotlar
{
class Program
{
static int Hesapla(int x, int y, char sembol)
{
int sonuc = 0;
switch (sembol)
{
case '+':
sonuc = x + y;
break;
case '-':
sonuc = x - y;
break;
case '*':
sonuc = x * y;
break;
case '/':
sonuc = x / y;
break;
}
return sonuc;
}
static void Main(string[] args)
{
int gelen_sonuc = Hesapla(10, 23, '*');
Console.WriteLine(gelen_sonuc);
Console.ReadLine();
}
}
}



Örnek 7: Parametre olarak dizi alan metotlar.

using System;
namespace Metotlar
{
class Program
{
static void DiziNumara(int[] numara, string deger)
{
Console.WriteLine(deger);
foreach (int no in numara)
{
Console.WriteLine(no.ToString());
}
}
static void Main(string[] args)
{
int[] numara = new int[5];
numara[0] = 12;
numara[1] = 45;
numara[2] = 36;
numara[3] = 24;
numara[4] = 78;
DiziNumara(numara, "Numaralar :");
// Alttaki gibide yazılabilir.
// DiziNumara(new int[] { 12, 45, 36, 24, 78 }, "Numaralar :");
Console.ReadLine();
}
}
}

Örnek 8: Params anahtar kelimesini parametre alan metot.

using System;
namespace Metotlar
{
class Program
{
static void ParamsDizi(string deger, params int[] numara)
{
Console.WriteLine(deger);
foreach (int no in numara)
{
Console.WriteLine(no);
}
}
static void Main(string[] args)
{
ParamsDizi("Numaralar : ", 12, 45, 36, 24, 78);
Console.ReadLine();
}
}
}

C# Foreach Döngüsü Örnek Uygulamalar



Örnek Uygulama 1: Foreach döngüsü en düşük indexten en yüksek indexe doğru işlem yapar.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string[] isimler = new string[]
{ "Ali", "Zeki", "Ahmet", "Musrafa", "Salim", "Rıza", "Remzi", "Aysel" };
foreach (string isim in isimler)
{
Console.WriteLine(isim);
}
Console.ReadLine();
}
}
}

Yukardaki örnek uygulamada isimlerin sırasına göre işlem yapıldığını ekran çıktısından anlayabiliyoruz.
Kodu çalıştırdığımızda konsol penceresi alttaki gibi görünecektir.

charp-foreach-ornek-01

Örnek Uygulama 2: Not ortalaması almak.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] notlar = new int[3] { 45, 82, 70 };
int ortalama = 0;
Console.WriteLine("Notlar : ");
foreach (int not in notlar)
{
Console.WriteLine(not);
ortalama += not;
}
ortalama = ortalama / 3;
Console.WriteLine("Not Ortalaması : " + ortalama);
Console.ReadLine();
}
}
}


Kodu çalıştırdığımızda konsol penceresi alttaki gibi görünecektir.



charp-foreach-ornek-02


Örnek Uygulama 3: Foreach döngüsünde "break" ifadesini kullanmak.

Kodu çalıştırdığımızda konsol penceresi alttaki gibi görünecektir. 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] numaralar = new int[] { 12, 3, 42, 50, 6, 22 };
foreach (int numara in numaralar)
{
Console.WriteLine("Numara : " + numara);
if (numara == 42)
{
break;
}
}
Console.ReadLine();
}
}
}


charp-foreach-ornek-03

Örnek Uygulama 4: Foreach döngüsünde "break" ifadesini kullanmak.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string[] isimler = new string[] { "Ali", "Zeki", "Ahmet", "Musrafa", "Salim", "Rıza", "Remzi", "Aysel" };
foreach (string isim in isimler)
{
Console.WriteLine(isim);
if (isim == "Salim")
{
break;
}
}
Console.ReadLine();
}
}
}



 

Kodu çalıştırdığımızda konsol penceresi alttaki gibi görünecektir.

charp-foreach-ornek-04


Örnek Uygulama 5: Foreach döngüsünde çok boyutlu dizi kullanımı.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[,] tablo = new int[3, 4];
tablo[0, 0] = 1;
tablo[0, 1] = 2;
tablo[0, 2] = 3;
tablo[0, 3] = 4;
tablo[1, 0] = 5;
tablo[1, 1] = 6;
tablo[1, 2] = 7;
tablo[1, 3] = 8;
tablo[2, 0] = 9;
tablo[2, 1] = 10;
tablo[2, 2] = 11;
tablo[2, 3] = 12;
foreach (int hucre in tablo)
{
Console.WriteLine("Hücre: " + hucre);
}
Console.ReadLine();
}
}
}


Kodu çalıştırdığımızda konsol penceresi alttaki gibi görünecektir.


charp-foreach-ornek-05

Online tedarik portalı MalzemeTurkiye.com üreticilerle tüketicileri bir araya getiriyor


İlan siteleri Türkiye’de en çok ilgi gören kategoriler arasında yer alıyor. Daha çok tüm ürün çeşitlerinin bulunduğu ilan sitelerine alternatif olarak belli bir alana odaklanan dikey girişim projeleri hayata geçmeye başlıyor. MalzemeTurkiye.com ise bu projelerden biri.
Eser Eskiçırak tarafından kurulan ve yazılımı AcerPro tarafından geliştirilen MalzemeTurkiye.com, hemen hemen imalat sektörüne ait malzemelerin bulunduğu bir ilan sitesi. Site, tedarikçileri tüketicilerle bir araya getirmesinin yanı sıra malzeme arayanların ilan verebilmesini sağlıyor.
MalzemeTurkiye.com’da ilan vermek isteyen tedarikçiler, siteye şirket üyeliği gerçekleştirmesi gerekiyor. Bu yüzden bireysel ve Facebook ile bağlanan kullanıcıların ilan veremediğini belirtelim. Şirket üyeliği kısmında logo gibi markaya dair öğeler paylaşmak mümkün. Bireysel kullanıcılarsa Facebook veya e-posta ile kayıt olduktan sonra tedarikçilerin ilanlarına ulaşabiliyor.
malzemeturkiye-com-ana-sayfa

Hedef 10 binden fazla malzeme sayısı

Aldığımız bilgilere göre şu anda sitede 140 farklı malzeme kategorisi bulunuyor. Kurucunun pazar araştırmaları ve hedeflerine göre ise MalzemeTurkiye.com’da 6 ay içinde 10-15 bin farklı malzemenin yer alması planlanıyor. Malzeme ilanı sayısı konusunda sitenin şu anda emekleme aşamasında olduğunu söylemek yanlış olmaz. Bunun yanı sıra sitenin şu anda günlük 3 bincivarında ziyaretçiye sahip olduğunu belirtelim.
MalzemeTurkiye.com’un gelir modeli ise reklam üzerine kurulu. Şu anda bunun dışında ücretli üyelik gibi farklı gelir modelleri bulunmuyor.
MalzemeTurkiye.com, bulunduğu ürün kategorisi bakımından diğer ilan sitelerine nazaran daha niş bir alanda yer alıyor. Bu her ne kadar dezavantaj gibi görünse de doğru hamlelerle avantajlı bir durumun yaratabileceğini düşünüyoruz. Öte yanda ürün çeşidi ve sayısı bakımından MalzemeTurkiye.com’un emekleme aşamasında olduğunu yukarıda paylaşmıştık. Bu anlamda sitenin hızlı bir şekilde bu rakamı artırmasını gerektiğini düşünüyoruz. Arayüz konusunda da kullanım kolaylığı bakımından bir kaç ufak değişiklik gerektiğini sözlerimize ekleyelim.

Kickstarter’ın gözdesi OUYA’ya 15 milyon dolar yatırım geldi


2012’nin yazında “Android tabanlı bir konsol oyunu değiştirebilir mi?” diye yazmıştık. Aradan bir yıldan kısa bir süre geçti ve bu sorunun cevabı hızla “evet”e doğru gidiyor. Özellikle oyun sektörünü takip edenler OUYA’yı ve Kickstarter macerasını anımsayacaklardır. Haziran ayında Kickstarter üzerinden 950 bin dolara ulaşmayı hedefleyerek yola çıkan Ouya, yaklaşık 1,5 ay içerisinde 5,7 milyon dolar toplayarak dikkatleri çekmişti.
Ardından OnLive anlaşması ile gücüne güç katan ve Kickstarter’dan toplamda 8,6 milyon dolar toplamayı başaran OUYA, en baştan hedeflendiği gibi Mart 2013’te piyasaya çıktı. Yeni nesil oyun konsoluna ilk kavuşanlar tabi ki konsolun Kickstarter’daki destekçileri oldu.
Bu hızlı başlangıcının ardından ise beklenen oldu; OUYA şimdi de Kleiner Perkins’in (KPCB) önderlik ettiği yatırım turunda 15 milyon dolarlık yatırım aldı…
OUYA’nın blog’unda kurucusu Julie Uhrman’ın açıkladığı yatırım turunda KPCB’ın yanı sıra Mayfield Fund, NVIDIA, Shasta Ventures ve Occam Partners de yer alıyor. Firmanın Kickstarter’dan topladığı 8,6 milyon dolar oyuncuların dikkatini çekebildiğinin net bir göstergesiydi. Bu 15 milyon dolar ise yatırımcıların da OUYA’nın romantik bir hevesin ötesinde, sürdürülebilir bir iş modeline sahip olduğuna ikna olduklarının son derece önemli bir göstergesi.
OUYA
OUYA 99 dolara satılan oyun konsolundan neredeyse hiç para kazanmıyor, asıl gelir modeli oyun içi satışları üzerine kurulu. Fakat OUYA’nın geliştiricilere sunduğu ilk koşul tüm oyunların en azından kısmen ücretsiz olarak oynanabilir olması, diğer bir deyişle oyunların free2play olması. Bu durumda da sadece sunulandan daha fazlasını isteyen oyunculardan ücret alınacak.
Web üzerinden oynanabilen pek çok oyun Free2play modelini başarılı ve karlı bir şekilde uygulayabiliyor, aslında aynı durumun OUYA’da gerçekleşmemesi için bir neden yok. Oyun geliştiricileri de aynı fikirde görünüyorlar çünkü bundan sadece 2 ay önce 8.000 oyun geliştiricisinin başvurduğu OUYA’da şu sıralarda bu sayı 12.000’e yükselmiş durumda.
Fakat beklentilerin çok üzerinde gerçekleşen ilgi OUYA’nın bazı planlarını da biraz değiştirmesine neden oldu. Orijinal plana göre 4 Haziran’da satışa sunulacak olan OUYA, yüksek talebe yanıt verebilmek için bu tarihi 25 Haziran’a çekmek zorunda kaldı.

Google+ Facebook’la arayı kapatıyor ama ziyaret süreleri halen en büyük sorun


Google bir süredir Google+’ın yaygınlığını artırmak için büyük çaba harcıyor. Üye sayısı, paylaşım rakamları gibi önemli rakamlarda da hızlı yol aldığı bir gerçek. Her ne kadar Facebook ile karşılaştırıldığında tam olarak rekabette hedeflediği güce ulaştığını söylemek pek mümkün olmasa da, giriş yapma gibi konularda arayı hızlı bir şekilde kapattığı görülüyor.
Bununla beraber sosyal ağ siteleri için hayati önem taşıyan bir performans göstergesinde Google+ halen Facebook’un gerisinde, hem de oldukça gerisinde, gibi görünüyor. Nielsen’in yaptığı araştırmada Mart ayı rakamlarına göre Google+’ta kullanıcıların ortalama olarak geçirdikleri süre 6 dakika 47 saniye. Facebook’ta geçirilen ortalama süre ise bunun neredeyse 60 katı…
Her ne kadar fark oldukça büyük olsa da, bu farkın bir önceki aya göre daha düşük olduğunu da diğer bir ilginç detay…
Uygulamalardan gelen trafiğin hesaba katılmadığı ve sadece web kullanıcılarının verilerinin değerlendirdiği Nielsen’in araştırmasına göre fark büyük ama bir yıl önceye göre Facebook’ta geçirilen süre daha düşük görünürken, Google+’ta geçirilen ortalama süre nereyse iki katına çıkmış.
Nielsen’in rakamları Mart ayında Facebook’ta kullanıcıların geçirdikleri ortalama sürenin 6 saat 44 dakika olduğunu gösteriyor. Bu rakam Google+’taki 6 dakika 47 saniyeden epeyce yüksek. Bir yıl öncesinde ise fark daha büyüktü. Geçtiğimiz yılın verilerine göre Facebook’ta kullanıcılar 7 saat 9 dakika geçirirken, Google+’ta 3,3 dakika geçiriyorlardı.
Fakat 2013 Mart ayına dair rakamlara Google’dan itiraz geldi. Mashable’a açıklama yapan Google yetkilisi, Nielsen’in açıklamasının kendi verilerinden çok düşük olduğunu söyledi. Fakat kendi rakamlarını da paylaşmadı ama o rakamlarda da Google+’da geçirilen sürenin Facebook’a çok yakın olduğunu sanmıyorum.
Peki size göre Google+ doğru yolda mı gidiyor? Sitede geçirilen sürenin düşük kalmasının nedeni ne? Google+ Facebook ile arasındaki farkı kapatabilir mi? Yorumlarınızı bekliyoruz…

1 milyon kez indirilen Facebook Home artık Galaxy S4 ve HTC One’da


Facebook’un Android makyajlaması Facebook Home‘ un dün 1 milyona yakın kez indirildiği açıklandı ve bugün yeni 2 cihaz daha Facebook Home’u kullanabilecek telefonlar arasına katıldı.
Facebook Home‘un tanıtımla beraber HTC One X, Samsung Galaxy S3 ve Samsung Galaxy Note 2′ye yüklenebileceği açıklanmış, Facebook Home entegrasyonlu ilk telefon ‘HTC First’ tanıtılmıştı. Üst düzey akıllı telefonları hedefleyen Facebook Home, bu cihazlar için 1 haftada 500 bin kez indirilmişti.
Dün Facebook Mobil Mühendislik Yöneticisi Cory Ondrejka‘nın açıklamasıyla Facebook’un Home’un 1 milyona yakın kez indirildiğini öğrendik ve bu rakamı daha da yükseltecek bir gelişme bugün gerçekleşti. Resmi bir yönlendirme henüz yapılmamış olsa da Samsung Galaxy S4 ve HTC One da Facebook Home’u kullanabilecek telefonlar listesine dahil oldu.
Türkiye’deki Galaxy S4 ve HTC One kullanıcıları da Facebook Home’u indiremeyecek ama bu gelişme Facebook Home’un kullanıcı sayısının büyümesini ciddi şekilde tetikleyebilir. Bu iki yeni model üreticilerinin en gözde telefonları olarak pazarda yer alıyor ve Ondrejka, Facebook Home kullanıcılarının yüzde 25 daha fazla etkileşim sağladığını söylüyor.
Facebook’un Home’un elbette ilk aşamada on milyonlara ulaşması beklenmemeli. Farklı eleştiriler de Facebook Home’un geleceğine şüpheyle yaklaşmamızı sağlıyor. Bununla beraber Facebook Home’un Android’e yeni bir oyun deneyimi getirme ihtimali var ki kulağa oldukça etkileyici geliyor.

Paylaşımlı çalışma alanı Yazane, girişimciler için kapılarını açtı


Girişimcilerin son zamanlardaki gözdesi paylaşımlı ofis alanlarında (coworking) çalışmak olmaya başladı. İnternetin sağladığı iş imkanlarıyla beraber artan dışarıdan çalışma alanlarının örnekleri Türkiye’de de hızla artmaya başladı. Bu anlamda geçen ay kapılarını açan Yazane de paylaşımlı ofis alanlarından biri olarak hizmet vermeye başladı.
Karaköy’de hizmet vermeye başlayan Yazane, Kerim Harunoğlu ve Harun Harunoğlu tarafından geçen ay kuruldu. Yazane, özel ofis açmak için yeterli bütçesi olmayan şirket veya kişilerin yönelik bir ofis alanı sunuyor.
Her ne kadar ekonomik bir çözüm sunsa da özel bir ofisten farkının olmadığını söyleyelim. Çalışma alanları, toplantı odaları, mutfak, sekreter, güvenli internet, printer gibi hizmetlerden Yazane müşterilerine sunulanlar arasında. Bunların yanı sıra ses geçirmeyen telefon kulübeleri, kilitli dolaplar, günün her saati çay ve kahve ikramının da mevcut olduğunu belirtelim.
yazane-5

Saatlikten yıllığa kadar farklı kiralama seçenekleri sunuluyor

Yazane kurucularından Kerim Harunoğlu’dan aldığımız bilgilere göre özellikle girişimciler hitap ediliyor. Hedef kitlelerinden girişimciler ve yeni girişimler olduğunu belirten Harunoğlu, kullanıcılara sosyalleşip kollektif ve üretken bir iş yeri sunduklarını söylüyor.
Yazane’de 4 farklı kullanım seçeneği sunuluyor. Flex, Fix, Fix Plus ve Office olarak isimlendirlen kullanım seçenekleri saatlik, günlük, haftalık, aylık ve yıllık olarak sunuluyor. Paket içeriğine göre değişen paketlerin en ucuzu KDV hariç saatlik 12 TL‘den başlıyor. İki kişilik özel ofis ise KDV hariç aylığı 2 bin TL ile kiralanıyor. Sunulan seçeneklerin tam listesine buradan ulaşabilirsiniz.
Yazane’nin, bulunduğu konum ile ofis ve plaza ortamlarından biraz daha farklı bir seçenek sunduğunu paylaşalım. Karaköy’de bulunan Yazane, özellikle boğaz manzarasıyla dikkat çekiyor.
Özellikle İstanbul’daki birçok girişimcilerin kafe ve restoran gibi mekanlarda laptoplarıyla çalıştığını görüyoruz. Yazane gibi mekanların ise girişimcilerin daha odaklanmış bir şekilde çalışmasına yardımcı olacak nitelikte olacağını düşünüyoruz. Bu arada Yazane’yi kullanmak isteyen Webrazzi okurlarına özel bir sürpriz yapılacağını paylaşalım.