1
Linq எக்ஸ்டென்சன் மெத்தட்கள். linq 2nd part


எக்ஸ்டென்சன் மெத்தட் என்றால் என்ன என்று பார்ப்பதற்கு முன்னால் ஒரு சிறிய சான்றினை பார்ப்போம்.
லிங்க் கொரி ஆபரேட்டர்கள் select, where போன்றவை Enumerable கிளாஸில் ஏக்ஸ்டன்சன் மெத்தட்களாக இம்ப்ளிமெண்ட் செய்யப்பட்டுள்ளன (I
Enumerable<T> இன்டெர்ஃபேஸில்ல் அறிவிக்கப்பட்டுள்ளது).
List<int> Numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

IEnumerable<int> EvenNumbers = Numbers.Where(n => n % 2 == 0);

இதில் where மெத்தட் list கிளாஸில் உள்ள மெத்தட் அல்ல. எனினும் இந்த மெத்தட் அழைப்பு சாத்தியமாகின்றது.ஏனெனில் where மெத்தட் ஆனது IEnumerable<T> இன்டெர்ஃபேஸில் அறிவிக்கப்பட்டுள்ளது. அந்த இன்டெர்ஃபேசை list<T> கிளாஸ் இம்ப்ளிமெண்ட் செய்கின்றது.
இப்பொழுது எக்ஸ்டெண்சன் மெத்தட் எவ்வாறு பயன்படுத்தப்படுகின்றது என பார்ப்போம்.
String கிளாஸில் ஒரு மெத்தட் டிஃபைன் செய்ய வேண்டும். சான்றிற்கு ChangeFirstLetterCase() என்ற மெத்தட் இது ஒரு ஸ்ட்ரிங்கின் முதல் எழுத்தை லோயர் கேஸ் ஆக இருந்தால் அப்பர் கேஸ் ஆகவும் அப்பர் கேஸ் ஆக இருந்தால் லோயர் கேஸ் ஆகவும் மாற்ற  வேண்டும்.
 String StrName=”Muthukarthikeyan”;
stringresult = strName.ChangeFirstLetterCase();
ChangeFirstLetterCase() மெத்தடை ஸ்ட்ரிங்க் கிளாஸில் அறிவிப்பது சாத்தியமல்ல. ஏனெனில் string கிளாஸ் ஆனது ஏற்கனவே உள்ளது. அதில் மாற்றம் செய்வது இயலாது.
இப்பொழுது ஒரு ரேப்பர் கிளாஸ் எழுதுவோம்.
public class StringHelper
{
    public static string ChangeFirstLetterCase(stringinputString)
    {
        if (inputString.Length > 0)
        {
            char[] charArray = inputString.ToCharArray();
            charArray[0] = char.IsUpper(charArray[0]) ?
                char.ToLower(charArray[0]) : char.ToUpper(charArray[0]);
            return new string(charArray);
        }

        return inputString;
    }

}

ரேப்பர் கிளாஸ் வேலை செய்யும் எனினும்
stringresult = strName.ChangeFirstLetterCase();
என்று அழைப்பது சாத்தியமல்ல.
பின் வருமாறு தான் அழைக்க  வேண்டும்
stringresult = StringHelper.ChangeFirstLetterCase(strName);
ஆனால் இதை சாத்தியமாக்குவதற்கு ChangeFirstLetterCase() மெத்தடை எக்ஸ்டன்சன் மெத்தட் ஆக அறிவிக்க வேண்டும்.
அதற்கு கீழ் கண்ட இரண்டு மாறுதல்கள் செய்ய வேண்டும்.
1.      முதலில் கிளாஸை static ஆக மாற்ற வே&%

Leave a comment