C# 7 deki bazı yenilikler ( Preview ) |
Yanıt Yaz |
Yazar | |
murat turan
Üye Profili
Özel Mesaj Yolla
Bu kullanıcıya ait mesajları bul
Üyenin Web Sitesie Git
Arkadaş Listeme Ekle
Admin Group Datakent Kayıt Tarihi: 01.Ekim.2003 Bulundugu Yer: Turkey Online: Sitede Değil Gönderilenler: 1798 |
Alıntı Cevapla
Konu: C# 7 deki bazı yenilikler ( Preview ) Gönderim Zamanı: 20.Eylül.2016 Saat 11:48 |
Yakında çıkacak olan Visual Studio 15'in yeni sürümü içerisinde bulunacak olan C# 7 serisinde şahsen sevdiğim bazı özellikler.
aşağıda göreceğiniz üzere ön tanım olmaksızın değişken tanımı. Eski serilerde int x, int y; şeklinde üst satırda tanım yapmak gerekiyordu. public void PrintCoordinates(Point p) { p.GetCoordinates(out int x, out int y); WriteLine($"({x}, {y})"); } diğer bir yenilik fonksiyon veya procedur için OUT parametresinin iptal edilebilmesi. aşağıda göreceğiniz üzere "GetCoordinates" iki parametreli bir yordamdır ve ikinci parametresi out * ile es geçilmiştir. p.GetCoordinates(out int x, out *); // sadece x değişkeniyle dönecek değeri kullanmak istiyoruz. diğer bir yenilik şart içerisinde tip kontrolü ve belirlenen tipte değişkene otomatik dönüşüm. "o" değişkeni object türünde gelmektedir ve ikinci IF kısmında "o" nun INT olup olmadığı kontrol ediliyor ve akabinde "i" değişkenine "int" olarak atanabiliyor. public void PrintStars(object o) { if (o is null) return; // constant pattern "null" if (!(o is int i)) return; // type pattern "int i" WriteLine(new string('*', i)); } ve şahsen geldiğine en çok sevindiğim özellik ise Apple'ın Swift'inde mevcut olup Apple'ın bizde var onda yok diye övündüğü bir özellik :) Tuples yani çoklu değişken dönüşü normalde çoklu değişken dönüşü yapmak istediğinizde bunu bir CLASS yaratıp orayla ilintilemeniz gerekirdi. Mesela düşünün bir fonksiyon yazdınız ve geriye "int x, int y" iki değer döndürecek. Bunun için bu iki değişkeni içeren bir CLASS yapıp fonksiyonun dönüşünüde bu CLASS tipinde yapardık değil mi? artık buna gerek kalmıyor. şöyle ki: (string, string, string) LookupName(long id) // tuple return type { ... // retrieve first, middle and last from data storage return (first, middle, last); // tuple literal }//kullanım olarak var names = LookupName(id); WriteLine($"found {names.Item1} {names.Item3}.");ve elbette dönüş tipleri isim içerebilir. Şöyle ki: (string first, string middle, string last) LookupName(long id) // tuple elements have namesve tekrar kullanımına bakcak olursak var names = LookupName(id); WriteLine($"found {names.first} {names.last}."); bu yapıdaki fonskyonlar için "var" ile tanım yapmadan, dönüş tipi biliniyorsa direkt değişken gruplarıylada dönüş değerleri okunabilir. (string first, string middle, string last) = LookupName(id1); // deconstructing declaration WriteLine($"found {first} {last}."); Tuples için diğer dönüş formatları: (var first, var middle, var last) = LookupName(id1); // var inside var (first, middle, last) = LookupName(id1); // var outside
ve diğer bir yenilik ise yerel fonksiyon. Pascal (delphi) de yıllardır mevcut olan yordam içi yordam yapısı c# 7 ile gelmektedir. Şöyle ki; bakılacağı üzere "Fibonacci" ana yordamdır. İçerisindeki "Fib" ise içsel yordamdırç public int Fibonacci(int x) { if (x < 0) throw new ArgumentException("Less negativity please!", nameof(x)); return Fib(x).current; (int current, int previous) Fib(int i) { if (i == 0) return (1, 0); var (p, pp) = Fib(i - 1); return (p + pp, p); } } diğer bir yenilik ise "Ref returns" biraz c/c++ daki pointer olarak tanımlanmış değişken gibi denilebilir. şöyle ki; Find "ref" dönüşü sağlayan bir fonksiyon public ref int Find(int number, int[] numbers) { for (int i = 0; i < numbers.Length; i++) { if (numbers == number) { return ref numbers; // return the storage location, not the value } } throw new IndexOutOfRangeException($"{nameof(number)} not found"); } int[] array = { 1, 15, -39, 0, 7, 14, -12 }; ref int place = ref Find(7, array); // place değişkenine 7'nin olduğu lokasyon yani dördüncü hücre atanıyor!!! burası önemli zira değeri değil !!! place = 9; // dördüncü hücredeki 7 değeri 9 yapılıyor. yani "array" değişkenine genel bir bakış yaptığınızda değerin array'da değiştiğini görebilirsiniz. WriteLine(array[4]); // array'ın dördüncü değerini yazdırıyoruz ki çıktı 9'dur. ve visual studio enterprise 15 preview 4'ü indirmek için tıklayınız... Düzenleyen murat turan - 16.Kasim.2016 Saat 13:12 |
|
murat turan
Üye Profili
Özel Mesaj Yolla
Bu kullanıcıya ait mesajları bul
Üyenin Web Sitesie Git
Arkadaş Listeme Ekle
Admin Group Datakent Kayıt Tarihi: 01.Ekim.2003 Bulundugu Yer: Turkey Online: Sitede Değil Gönderilenler: 1798 |
Alıntı Cevapla Gönderim Zamanı: 20.Eylül.2016 Saat 20:38 |
eğer VS 15'i kurarken "Windows 7 SP1 requires KB2952664" gibi bir hata alırsanız;
eğer sisteminiz 32Bit (x86) ise %windir%\system32 klasörüne "dismapi.dll" adında boş bir DOSYA yaratınız. eğer 64Bit (x64) bir sistem kullanıyorsanız aynı dosyayı %windir%\SysWow64 klasörüne oluşturunuz. |
|
Yanıt Yaz |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |