İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme
Yöntem imzalarını ve dönüş değerlerini tanımlayın, ifade gövdeli yöntemleri, isteğe bağlı/adlandırılmış parametreleri ve ref/out'u kullanın ve aşırı yüklemeyi anlayın. Not: C# 6'da yerel işlevler yoktur.
İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.
Yöntem temelleri
Amaç: Temiz yöntemler tanımlayın: imza (ad, parametreler, dönüş türü), kısa gövdeler ve öngörülebilir davranış.
- Dönüş değerleri
- İfade gövdeli yöntemler
- İsteğe bağlı/adlandırılmış parametreler
İmzalar ve dönüş değerleri
Bir yöntemin adı, parametreleri ve dönüş türü vardır. Adları anlaşılır ve amaca odaklı tutun.
using System;
public class MathUtil
{
// Signature: name Add, parameters (int a, int b), return int
public static int Add(int a, int b)
{
return a + b;
}
}
public class Program
{
public static void Main(string[] args)
{
int s = MathUtil.Add(2, 3);
Console.WriteLine("Sum = " + s);
}
}
İfade gövdeli yöntemler
İfade gövdeli yöntemler, küçük ve anlaşılır helpers için => kullanır.
using System;
public static class FormatUtil
{
// Expression-bodied method (C# 6): concise one-liner
public static string Greet(string name) => "Hello, " + name + "!";
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(FormatUtil.Greet("Ada"));
}
}
İsteğe bağlı ve adlandırılmış parametreler
Makul varsayılanlar için isteğe bağlı parametreleri, çağrı yerinde açıklık için adlandırılmış argümanları kullanın.
using System;
public static class Logger
{
// Optional parameter: times has a default
public static void Log(string message, int times = 1)
{
for (int i = 0; i < times; i = i + 1)
{
Console.WriteLine(message);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Logger.Log("One time"); // uses default
Logger.Log(message: "Twice", times: 2); // named arguments
}
}
ref ve out temelleri
ref: değişken çağrıdan önce atanmış olmalıdır. out: yöntem döndürmeden önce değişkene değer atamalıdır.
using System;
public static class RefOutDemo
{
public static void Increment(ref int x)
{
x = x + 1; // modifies caller's variable
}
public static bool TryDivide(int a, int b, out int result)
{
if (b == 0)
{
result = 0; // out must be assigned before return
return false;
}
result = a / b;
return true;
}
}
public class Program
{
public static void Main(string[] args)
{
int n = 10;
RefOutDemo.Increment(ref n);
Console.WriteLine("n = " + n); // 11
int r;
bool ok = RefOutDemo.TryDivide(9, 0, out r);
Console.WriteLine("ok=" + ok + " r=" + r);
}
}
Aşırı yükleme ve not
Aşırı yükleme, ilgili işlemler için aynı adı yeniden kullanır. Not: Yerel işlevler C#'ın sonraki sürümlerinde kullanılabilir; C# 6'da küçük özel helpers kullanın.
using System;
public static class Calc
{
// Overloads: same name, different parameter lists
public static int Area(int side) { return side * side; }
public static int Area(int width, int height) { return width * height; }
// C# 6 has no local functions; use private helpers instead.
private static int DoubleIt(int x) { return x + x; }
public static int TwiceArea(int side)
{
int a = Area(side);
return DoubleIt(a);
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Area square 3 = " + Calc.Area(3));
Console.WriteLine("Area rect 3x4 = " + Calc.Area(3, 4));
Console.WriteLine("Twice area of 3 = " + Calc.TwiceArea(3));
}
}
ref ve out kuralı
Özet
Özet: Açık imzalar, dönüş değerleri ve küçük ifade gövdeli helpers tasarlayın; okunabilirlik için isteğe bağlı/adlandırılmış parametreleri kullanın; ref ile out arasındaki farkı bilin ve aşırı yüklemeyi dikkatle kullanın. Yerel işlevler C#'ın sonraki sürümlerinde gelir; C# 6'da özel helpers kullanın.
Sıkça Sorulan Sorular
“İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme” dersi ücretsiz mi?
Evet — “İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.
“İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme” dersinde ne öğreneceğim?
Yöntem imzalarını ve dönüş değerlerini tanımlayın, ifade gövdeli yöntemleri, isteğe bağlı/adlandırılmış parametreleri ve ref/out'u kullanın ve aşırı yüklemeyi anlayın. Not: C# 6'da yerel işlevler yok… C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- İmzalar, dönüşler; ifade gövdeli yöntemler; isteğe bağlı/adlandırılmış; ref/out; aşırı yükleme
- İsteğe bağlı/adlandırılmış parametreler; ref/out/in (temeller)
- Yerel işlevler (C# 6 notu) ve aşırı yükleme