Junior
Маънии усулҳои васеъкунӣ чист?
sobes.tech AI
Ҷавоб аз AI
Методҳои васеъкунӣ (extension methods) имкон медиҳанд, ки методҳои нав ба намудҳои мавҷуда илова карда шаванд, бе тағир додани коди манбаъ ё сохтани намудҳои нав.
Маънои он чунин аст:
- Онҳо ҳамчун методҳои статикӣ дар класи статикӣ эълон мешаванд.
- Параметри аввалини методи васеъкунӣ калимаи
this-ро дар пеши навъи худ дорад. Ин параметр навъи, ки васеъ карда мешавад, нишон медиҳад. - Онҳо ҳамчун методҳои намунавии навъи васеъшуда даъват мешаванд.
Масалан:
// Класи статикӣ барои методҳои васеъкунӣ
public static class StringExtensions
{
// Метод барои васеъкунӣ барои навъи string
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Истифодаи методаи васеъкунӣ
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Дар шакли методаи намуна даъват мешавад
// Баробар ба даъвати мустақим ба методи статикӣ
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Фоидаҳо:
- Беҳтар кардани хонданпазирии коди, бо истифода аз синтаксиси "нуқта" дар объектҳо.
- Имкон медиҳад, ки функсионалият ба синфҳои "sealed" ё намудҳои китобхонаҳои беруна илова карда шавад, бе тағир додани коди манбаъ.
- Ҳолатҳоро барои навиштани пурсишҳои LINQ осон мекунад, зеро бисёре аз методҳои LINQ ҳамчун методҳои васеъкунӣ амалӣ шудаанд.