Ayyukan su ne aiyuka da aka ayyana a cikin ajari. C# yana goyan bayan fasalulluka masu arziki na sifofi — sifofi da ke da zaari/sunayen sifofi, ref/out/in gyarawa, jerin — da (ayyuka da yawa da mafi gida amma sifofi daban).
paramspublic int Add(int a, int b) => a + b; // expression-bodied (concise)
public string Greet(string name, string greeting = "Hello") // default parameter
{
return $"{greeting}, {name}";
}
Greet("Ann"); // "Hello, Ann"
Greet("Ann", greeting: "Hi"); // named argument
Ayyukan suna bayyana nau'in dawo, suna, da sifofi. Sifofi na tsakani suna sa sifofi a batuwa, da sunayen sifofi suka ba ka damar watsa da suna (m sananta, za ka iya tsallaka sifofi da ke da zaari).
// ref — pass by reference (method can modify the caller's variable)
void Increment(ref int x) { x++; }
int n = 5; Increment(ref n); // n is now 6
// out — for returning multiple values (must be assigned in the method)
bool TryParse(string s, out int result) { result = ...; return true; }
if (int.TryParse("42", out int value)) { } // the common TryX pattern
// in — pass by reference but READ-ONLY (performance for large structs)
void Process(in LargeStruct data) { }
out ana amfani da shi sosai a cikin TryParse tsari (dawowan alama ta nasara da kuma sakamakon gudu; ref yana ba da damar gyara sifofi na kira; in yana watsa manyan sifofi ba tare da kwafa ba.
// params — variable number of arguments
int Sum(params int[] numbers) => numbers.Sum();
Sum(1, 2, 3, 4); // any number
// OVERLOADING — same name, different parameters
void Print(int x) { }
void Print(string s) { }
void Print(int x, int y) { }
Print(5); // calls the int version — resolved by argument types
Aiwatarwa tana ba da damar ayyuka da yawa su raba suna, banbantantarwa ta nau'in sifofi/lissafi — mai gogewa ya zaɓi mataccen gida. params yana yarda da adadi mai canji na sifofi.
Ayyukan su ne muhimman gida na hali a C#, da fahimtar fasalullukan sifofi masu arziki yana mahimmi don rubutar lambar da ke da takaitawa, adadi mai adadi.
Sanin yaya za a ayyana ayyuka (gami da sauki hadewa-jiki), amfani da sifofi na tsakani da sunayen sifofi (don sifofi da batuwa da asantaccen kira), da amfani da aiwatarwa ta ayyuka (mafi gida amma sifofi daban — don APIs masu hankali da ke da alaƴar sifofi daban) yana ilimi na yau da kullun.
Gyarawa sifofi yana da mahimmanci musamman don fahimta: out ana amfani da shi sosai a cikin bayyane TryParse tsari (int.TryParse(s, out var result) — dawowan gudu alama ta nasara da sakamakon ba tare da exemptions ba, tsari na gida na C#), ref yana ba da damar gyara sifofi na kira, da in yana watsa manyan sifofi ta hanya don aiki.
Fahimtar waɗannan — ayyuka, fasalullukan sifofi (da ke da zaari/sunayen/params), aiwatarwa don APIs mai takaitawa, da ref/out/in gyarawa (musamman out-tushen TryX idiom) — yana asali don rubutar C# ayyuka da amfani da .NET APIs da yawa da ke dogara akan waɗannan fasalulluka.
Tun ayyuka da sifofi su ke tsakiya ga dukan C# lambar, da tun fasalulluka kamar aiwatarwa, sifofi da ke da zaari, da TryX tsari suke bayyana akai-akai, fasihata su aiki da mahimmanci, dole a sani ilimi don aiki mai tasiri na C#.