Methods ਇੱਕ ਕਲਾਸ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਫੰਕਸ਼ਨ ਹਨ। C# ਸਮਾਰਟ ਪੈਰਾਮੀਟਰ ਫੀਚਰਾਂ ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ — ਵਿਕਲਪਿਕ/ਨਾਮੀ ਆਰਗੂਮੈਂਟਾਂ, ref/out/in ਮੋਡੀਫਾਇਰਾਂ, params ਐਰੇ — ਅਤੇ (ਇੱਕੋ ਨਾਮ ਪਰ ਵੱਖ-ਵੱਖ ਪੈਰਾਮੀਟਰਾਂ ਵਾਲੇ ਕਈ methods)।
public 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
Methods ਇੱਕ ਰਿਟਰਨ ਟਾਈਪ, ਨਾਮ, ਅਤੇ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਸਪਸ਼ਟ ਕਰਦੇ ਹਨ। ਡਿਫ਼ਾਲਟ ਪੈਰਾਮੀਟਰਸ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਵਿਕਲਪਿਕ ਬਣਾਉਂਦੇ ਹਨ, ਅਤੇ ਨਾਮੀ ਆਰਗੂਮੈਂਟਾਂ ਤੁਹਾਨੂੰ ਨਾਮ ਦੁਆਰਾ ਪਾਸ ਕਰਨ ਦਿੰਦੀਆਂ ਹਨ (ਬਿਹਤਰ, ਵਿਕਲਪਿਕਾਂ ਨੂੰ ਛੱਡ ਸਕਦੇ ਹੋ)।
// 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 TryParse ਪੈਟਰਨ ਵਿੱਚ ਵਿਆਪਕ ਤੌਰ ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ (ਸਫਲਤਾ ਫਲੈਗ ਨੂੰ ਤੇ ਨਤੀਜਾ ਸੁਰੱਖਿਤ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਕਰਨਾ); ref ਕਾਲਕ ਵੇਰੀਏਬਲ ਨੂੰ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ; in ਵੱਡੇ structs ਨੂੰ ਕਾਪੀ ਕੀਤੇ ਬਿਨਾ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪਾਸ ਕਰਦਾ ਹੈ।
// 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
ਓਵਰਲੋਡਿੰਗ ਕਈ methods ਨੂੰ ਇੱਕ ਨਾਮ ਸਾਂਝਾ ਕਰਨ ਦਿੰਦਾ ਹੈ, ਪੈਰਾਮੀਟਰ ਟਾਈਪਾਂ/ਸੰਖਿਆ ਦੁਆਰਾ ਵੱਖਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ — ਕੰਪਾਇਲਰ ਮੇਲਣ ਵਾਲਾ ਚੁਣਦਾ ਹੈ। params ਇੱਕ ਵੇਰੀਏਬਲ ਸੰਖਿਆ ਦੀਆਂ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।
Methods C# ਵਿੱਚ ਵਿਵਹਾਰ ਦੇ ਮੁੱਢਲੇ ਬਲਾਕ ਹਨ, ਅਤੇ ਉਹਨਾਂ ਦੇ ਸਮਾਰਟ ਪੈਰਾਮੀਟਰ ਫੀਚਰਾਂ ਨੂੰ ਸਮਝਣਾ ਲਚਕਦਾਰ, ਸਮਰਥ ਕੋਡ ਲਿਖਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
Methods ਨੂੰ ਸਮਝਣਾ (ਸੰਖੇਪ expression-bodied syntax ਸਮੇਤ), ਡਿਫ਼ਾਲਟ ਅਤੇ ਨਾਮੀ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ (ਵਿਕਲਪਿਕ ਆਰਗੂਮੈਂਟਾਂ ਅਤੇ ਮੁਢਲੇ ਕਾਲਸ ਲਈ), ਅਤੇ ਮੈਥਡ ਓਵਰਲੋਡਿੰਗ ਲਾਗੂ ਕਰਨਾ (ਇੱਕੋ ਨਾਮ, ਵੱਖ-ਵੱਖ ਪੈਰਾਮੀਟਰਸ — ਅਨੁਭਵੀ APIs ਲਈ ਜੋ ਵਿਭਿੰਨ ਆਰਗੂਮੈਂਟ ਟਾਈਪਾਂ ਨਾਲ ਨਜਿੱਠਦੇ ਹਨ) ਰੋਜਾਂ ਦੀ ਜਾਣਕਾਰੀ ਹੈ।
ਪੈਰਾਮੀਟਰ ਮੋਡੀਫਾਇਰਸ ਖਾਸ ਤੌਰ ਤੇ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ: out ਸਰਵ-ਵਿਆਪੀ TryParse ਪੈਟਰਨ ਵਿੱਚ ਵਿਆਪਕ ਤੌਰ ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ (int.TryParse(s, out var result) — ਸਫਲਤਾ ਫਲੈਗ ਅਤੇ ਨਤੀਜਾ ਨੂੰ ਲਾਜ਼ਮੀਤਾਵਾਂ ਤੋਂ ਬਿਨਾਂ ਸੁਰੱਖਿਤ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਕਰਨਾ, ਇੱਕ ਆਮ, ਪ੍ਰਮਾਣਿਕ C# ਪੈਟਰਨ), ref ਕਾਲਕ ਵੇਰੀਏਬਲ ਨੂੰ ਸੰਸ਼ੋਧਨ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ in ਪ੍ਰਦਰਸ਼ਨ ਲਈ ਵੱਡੇ structs ਨੂੰ ਸੰਦਰਭ ਦੁਆਰਾ ਪਾਸ ਕਰਦਾ ਹੈ।
n ਇਹਨਾਂ ਨੂੰ ਸਮਝਣਾ — methods, ਪੈਰਾਮੀਟਰ ਫੀਚਰਸ (ਵਿਕਲਪਿਕ/ਨਾਮੀ/params), ਲਚਕਦਾਰ APIs ਲਈ ਓਵਰਲੋਡਿੰਗ, ਅਤੇ ref/out/in ਮੋਡੀਫਾਇਰਸ (ਖਾਸ ਕਰਕੇ out-ਅਧਾਰਿਤ TryParse ਪ੍ਰੰਪਰਾ) — C# methods ਲਿਖਣ ਅਤੇ ਬਹੁਤ ਸਾਰੇ .NET APIs ਨੂੰ ਵਰਤਣ ਲਈ ਨਿਰਲੋਚ ਹੈ ਜੋ ਇਹਨਾਂ ਫੀਚਰਾਂ ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ।
ਕਿਉਂਕਿ methods ਅਤੇ ਉਹਨਾਂ ਦੇ ਪੈਰਾਮੀਟਰਸ ਸਭ C# ਕੋਡ ਦਾ ਕੇਂਦਰ ਹਨ, ਅਤੇ ਕਿਉਂਕਿ overloading, ਵਿਕਲਪਿਕ ਪੈਰਾਮੀਟਰਸ, ਅਤੇ TryX ਪੈਟਰਨ ਵਰਗੀਆਂ ਫੀਚਰਾਂ ਲਗਾਤਾਰ ਪ੍ਰਗਟ ਹੁੰਦੀਆਂ ਹਨ, ਇਹਨਾਂ ਵਿੱਚ ਮਾਹਰ ਹੋਣਾ C# ਵਿਕਾਸ ਲਈ ਵਰਤਮਾਨ, ਜ਼ਰੂਰੀ ਗਿਆਨ ਹੈ।