C# 7 Discards
Özellikle tuples eklentisinden bahsettikten sonra, discards kısmına da kısaca değinmek gerektiğine inanıyorum. Kısaca özelliğe değinmek gerekir ise Fonksiyon çağrımlarında ilgimizi çekmeyen dönüşleri yada out parametreleri görmezden gelmemize yarayan bir yapı olarak ifade edebilirim.
Olası discard kullanımları:
- tuples veya kullanıcı tanımlı tipler.
- out parametreleri
- pattern matchingişlemlerinde is ve switch ifadeleri ile.
-
veya ihmal etmek istediğiniz basit bir atama adımında.
Peki bunu nasıl yapıyoruz ?
Bu noktada tuples ve out parametrelerini beraber kullanarak, (Her 2 kullanımada örnek verebilmek için ) biraz anlamsız ve idealden uzak olan bir method oluşturalım 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class Program { static void Main(string[] args) { string locToUpper = ""; //Aşağıda dikkat edilir ise Tuples içinde sadece ilk 2 si dikkate alınıyor, //3. Tuple dönüşü ve out parametrelerden 2. si "discard" ediliyor yani görmezden geliniyor. var (lat, long, _) tuple = GetCoordinate("istanbul", out locToUpper, out _); Console.WriteLine(String.Format("{0} coordinate is lat: {1} - long: {2}", locToUpper, lat, long)); Console.ReadKey(); } private static (double, double, string) GetCoordinate(string locationName, out string locationUPPER, out string locationLOWER) { locationUPPER = locationName.toUpper(); locationLOWER = locationName.toLower(); return (41.015137, 28.979530,locationName); } } |
Aslında sadece belirli bir set ile uğraştığımızı düşünür isek, yeni özellik ile birlikte derleyiciye
Kabaca yaptığımız işlem ise, ilgilenmediğimiz alanların, sadece yazılabilen ‘_‘ adında bir değişkene atamasını yapmaktır.
İyi günler.