C# 7 Tuples – Değişken Grubu
CSharp'ın yedinci versiyonuyla gelen tuples değerlerin geçici olarak gruplandırılmasıdır. Bu gruplama yerine farklı yapıları kullanabiliyorduk.
Tuples – Değişken Grubu
CSharp’ın yedinci versiyonuyla gelen tuples değerlerin geçici olarak gruplandırılmasıdır. Bu gruplama yerine farklı yapıları kullanabiliyorduk.
- out parametreleri
- Sınıf veya yapı (struct) türleri
- Anonim türler, dynamic bir dönüş türü ile döndürüldü
Fakat sınıf olarak tanımlamak yerine anında tanımlayıp kodlamamıza devam edebiliriz. Bir grup değerin geçici olarak gruplandırılmasının en yaygın nedeni, bir yöntemin birden çok dönüş değeri olması ihtiyacıdır. Şu anda, bunu C # ‘da yapmanın birkaç yolu var. Yukarıda da belirttiğimiz gibi sınıf olarak, Tuple veri tipi olarak veya out parametresi olarak bu dönüşleri sağlayabiliriz. Aslına bakacak olursak Tuple ilk olarak .NET Framework 4.0’ın bir parçası olarak tanıtıldı. Ama kullanışlı olan haline C# 7 ile geldi diyebiliriz. Bence Tuple özelliğinin kullanmanın en büyük sebebi “out” kullanımının dezavantajlardır.
Bunlar :
- Parametreleri açıkça bildirmelisiniz. Yani “var” anahtarını direk kullanamazsınız.
- asenkron-metodları kullanamazsınız.
- Parametreler önceden tanımlanmak zorundadır.
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) { // Tip tanımıyla gösterimi (double lat, double long, string locationName) tuple = GetCoordinate("istanbul"); Console.WriteLine(String.Format("{0} coordinate is lat: {1} - long: {2}", tuple.locationName, tuple.lat, tuple.long)); // var anahtar kelimesi ile kullanımı var tupleLoc= GetCoordinate("istanbul"); Console.WriteLine(String.Format("{0} coordinate is lat: {1} - long: {2}", tupleLoc.locationName, tupleLoc.lat, tupleLoc.long)); Console.ReadKey(); } private static (double lat, double long, string locationName) GetCoordinate(string locationName) { // https://www.latlong.net/place/istanbul-turkey-2242.html return (41.015137, 28.979530,locationName); } } |
Bu tekniği genel olarak diğer kullanıcılara açmayı düşündüğünüz metodlarda uygulamanızı önermiyorum. Bu metodların kontrolünüz dışında kalmasına ve problemlere yol açabilir.
Makalede ki kaynak kodlara github üzerinden ulaşabilirsiniz.https://github.com/kkulaoglu/Bilisim.io
iyi kodlamalar,