Tuesday, October 15, 2019

சி ஷார்ப்பில் டேட்டா டைப் கன்வர்சன்கள்.



சி ஷார்ப்பில் ஒரு டேட்டா டைப்பில் உள்ள டேட்டாவை இன்னொரு டேட்டா டைப்பிற்க்கு மதிப்பிருத்தல் (Data type conversions) என்று பார்க்க இருக்கின்றோம்.
பொதுவாக லோயர் டேட்டா டைப்பில் உள்ள டேட்டாவை ஹையர் டேட்டா டைப்பிற்க்கு மாற்றும் பொழுது அப்படியே மதிப்பிருத்தலாம்.
அதாவது எந்த கன்வர்சனில் டேட்டா இழப்பு இருக்காதோ அதை அப்படியே மதிப்பிருத்தலாம்.
சான்று நிரல்.
using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 100;
            float j = i;
            Console.WriteLine("j=" + j);
            Console.ReadLine();
         }
    }
}

வெளியீடு:
j=100.
மேலே உள்ள சான்று நிரலில் float ஹையர் டேட்டா டைப். Int லோயர் டேட்டா டைப். எனவே அப்படியே மதிப்பிருத்தலாம்.
இது இம்ப்ளிசிட் கன்வர்சன் ஆகும்.

ஆனால் ஹையர் டேட்டா டைப்பிலிருந்து லோயர் டேட்டா  டைப்பிற்க்கு மாற்றும் பொழுது டேட்டா டைப் கொடுத்து எக்ஸ்ப்ளிசிட் ஆக கன்வர்ட் செய்ய வேண்டும்,
சான்று நிரல்:
using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            float i = 100.25f;
            int j = (int)i;
            Console.WriteLine("j=" + j);
            Console.ReadLine();
         }
    }
}
வெளியீடு:
J=100.
மேற்கண்ட முறையில் அல்லாது கன்வர்ட் என்ற கிளாஸின் மெத்தட்கள் உபயோகித்தும் கன்வர்ட் செய்யலாம்.
சான்று நிரல்.
using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            float i = 100.25f;
            int j = Convert .ToInt32( i);
            Console.WriteLine("j=" + j);
            Console.ReadLine();
         }
    }
}

வெளியீடு:
J=100.
டேட்டா டைப்பின் பெயர் கொடுத்து மாற்றுதலுக்கும் கன்வர்ட் கிளாஸின் மெத்தட் மூலம் கன்வர்ட் செய்வதற்க்கும் உள்ள வித்தியாசம் :
டேட்டா டைப் கொடுத்து மாற்றும் பொழுது மதிப்பு டேட்டா டைப்பின் எல்லையை தாண்டியது என்றால் அந்த டைப்பின் லோயஸ்ட் மதிப்பு காண்பிக்கப்படும். ஆனால் கன்வர்ட் கிளாஸ் கொடுத்து மாற்றும் பொழுது பிழை சுட்டப்படும்.
ஸ்ட் ரிங்க் டைப்பை இன்டிஜர் ஆக மாற்றுதல்.
இதற்கு
int.parse பயன்படுகின்றது.
சான்று நிரல்.
using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "100";
            int i = int.Parse(str);
            Console.WriteLine("i=" + i);

            Console.ReadLine();
         }
    }
}
வெளியீடு:
I=100.
மேலே உள்ள நிரலில் 100 என்ற ஸ்ட்ரிங்க் ஆனது இன்ட் ஆக பார்ஸ் செய்யப்படுகின்றது.
ஆனால் நம்பர் ஃபார்மட்டில் இல்லாத ஸ்ட்ரிங்கை இன்ட் ஆக பார்ஸ் செய்யும் பொழுது இயக்க நேரத்தில் பிழை சுட்டப்படும்.
இதற்கு மாற்றாக TryParse மெத்தடை பயன்படுத்தலாம் . இந்த மெத்தட் ஆனது ஸ்ட்ரிங்க் ஆனது நம்பர் ஃபார்மட்டில் இருந்தால்
True என்ற பூலியன் மதிப்பை ரிடர்ன் செய்கின்றது. மேலும் ஒரு வேரியபிளுக்கு பார்ஸ் செய்யப்பட்ட டேட்டாவை மதிப்பிருத்துகின்றது.
ஸ்ட்ரிங்க் ஆனது நம்பர் ஃபார்மட்டில் இல்லை யென்றால் false என்ற பூலியன் மதிப்பை ரிடர்ன் செய்கின்றது.
சான்று நிரல்.
using System;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "100";
            int result=0;
            bool b = int.TryParse(str, out result);
            if (b)
            {
                Console.WriteLine("result=" + result);
            }
            else
            {
                Console.WriteLine("not in number format");
            }
            Console.ReadLine();
         }
    }
}
வெளியீடு:
Result=100;
மேலே உள்ள நிரலில் TryParse மெத்தடிற்கு str என்ற ஸ்ட்ரிங்கும் result என்ற out பராமீட்டரும் உள்ளது . str ஆனது 100 என்ற நம்பர் ஃபார்மட்டில் உள்ளதால் true என்ற பூலியன் மதிப்பை ரிடர்ன் செய்யும் மேலும் result என்ற வேரியபிளில் 100 என்ற இண்டிஜர் டேட்டாவை மதிப்பிருத்தும்.
நன்றி.
முத்து கார்த்திகேயன்,மதுரை.

ads Udanz

No comments:

Post a Comment