Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading
Definisikan signatur metode dan nilai kembalian, gunakan metode berbadan-ekspresi, parameter opsional/bernama, ref/out, serta pahami overloading. Catatan: tidak ada fungsi lokal di C# 6.
Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.
Dasar-dasar metode
Tujuan: Tentukan metode yang bersih: signatur (nama, parameter, tipe hasil), isi yang ringkas, dan perilaku yang dapat diprediksi.
- Nilai hasil
- Metode berbentuk ekspresi
- Parameter opsional/bernama
Signatur & hasil
Sebuah metode memiliki nama, parameter, dan tipe hasil. Gunakan nama yang jelas dan terfokus.
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);
}
}
Metode berbentuk ekspresi
Metode berbentuk ekspresi menggunakan => untuk helpers kecil yang jelas.
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"));
}
}
Opsional & bernama
Gunakan parameter opsional untuk nilai bawaan yang wajar dan argumen bernama agar pemanggilan metode lebih jelas.
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
}
}
Dasar-dasar ref & out
ref: variabel harus diberi nilai sebelum pemanggilan. out: metode harus memberi nilai sebelum mengembalikan hasil.
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);
}
}
Overloading & catatan
Pembebanan berlebih menggunakan kembali satu nama untuk operasi yang berkaitan. Catatan: fungsi lokal tersedia pada versi C# yang lebih baru; di C# 6 gunakan helpers privat kecil.
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));
}
}
Aturan ref vs out
Ringkasan
Ringkasan: Rancang signatur, nilai hasil, dan helpers kecil berbentuk ekspresi yang jelas; gunakan parameter opsional/bernama agar mudah dibaca; pahami perbedaan ref dan out; lakukan pembebanan berlebih dengan hati-hati. Fungsi lokal tersedia pada C# versi yang lebih baru—gunakan helpers privat di C# 6.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading” gratis?
Ya — teks lengkap “Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading”?
Definisikan signatur metode dan nilai kembalian, gunakan metode berbadan-ekspresi, parameter opsional/bernama, ref/out, serta pahami overloading. Catatan: tidak ada fungsi lokal di C# 6. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.
Berapa lama pelajaran “Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading
- Parameter opsional/bernama; ref/out/in (dasar)
- Fungsi lokal (catatan C# 6) dan overloading