Wednesday, January 29, 2020

சி ஷார்ப்பில் நல்லபிள் டேட்டா டைப்கள்(nullable data types )


பொதுவாக சி ஷார்ப்பில் உள்ள டேட்டா டைப்களை இரண்டு வகையாக பிரிக்கலாம்.
1.      வேல்யூ டைப்
2.      ரெஃபரன்ஸ் டைப்.
வேல்யூ டைப் என்றால் சான்றாக int, float, bool , struct, enum, போன்றவற்றை சான்றாக கூறலாம். ரெஃபெரெனன்ஸ் டேட்டா டைப் என்றால்  class, interface, string,delegates, array போன்றவற்றை.
இவற்றில் வேல்யூ டைப்பிற்கு null என்பதை மதிப்பிருத்த முடியாது. ஆனால் ரெஃபரன்ஸ் டைப்பிற்கு மதிப்பிருத்தலாம்.
சான்றாக
String name=null  //valid
int a=null //invalid
இப்பொழுது சில சூழ்நிலைகளில் வேல்யூ டைப்பிற்கு null என்பதை மதிப்பிருத்த வேண்டியது ஏற்படலாம். அவ்வாறான சூழ்நிலைகளில் டேட்டா டைப்பிற்க்கு அருகில் ஒரு ? என்பதை இட வேண்டும்.
சான்றாக
int? a=null     //valid
சான்றாக firstname, lastname, Areyoumajor போன்றவற்றிற்கு உள்ளீடு கொடுக்க வேண்டும் என்று எடுத்துக் கொள்வோம்.இதில் Areyoumajor என்பது பூலியன் டேட்டா டைப். இதற்கு நல் மதிப்பிருத்த முடியாது. ஆனால் மதிப்பிருத்தாவிடில் டிஃபால்ட் ஆக false என்பதை எடுத்துக் கொள்ளும். ஆகையால் இது மேஜர் கிடையாது என்று ஆகிவிடும்.
எனவே பின் வருமாறு மதிப்பிருத்தலாம்.
bool? Areyoumajor=null   //valid
சான்று நிரல்-1
using System;

namespace Nullabletypes
{
    class Program
    {
        static void Main(string[] args)
        {
            bool? AreYouMajor = null;
            if (AreYouMajor == true)
            {
                Console.WriteLine("you are major");
            }
            else if (AreYouMajor == false)
            {
                Console.WriteLine("you are not major");
            }
            else
            {
                Console.WriteLine(" no input given");
            }


        }
    }
}
இப்பொழுது கீழே உள்ள நிரலை பார்க்கவும்.
using System;

namespace Nullabletypes
{
    class Program
    {
        static void Main(string[] args)
        {
            int? TicketOnSale = null;
            int AvailableTickets;
            if (TicketOnSale == null)
            {
                AvailableTickets = 0;
            }
            else
            {
                AvailableTickets = (int)TicketOnSale;
            }
            Console.WriteLine("Available tickets={0}", AvailableTickets);


        }
    }
}
இதில் TicketOnSale, AvailableTickets என இரண்டு வேரியபிள்கள் உள்ளன. இதில் TicketOnSaleல் எனில் AvailableTickets 0 எனவும் இல்லையெனில் என்ன மதிப்போ அது மதிப்பிருத்தப் பட வேண்டும்.
இதை சுருக்கமாக பின் வருமாறு எழுதலாம்.
using System;

namespace Nullabletypes
{
    class Program
    {
        static void Main(string[] args)
        {
            int? TicketOnSale = null;
            int AvailableTickets = TicketOnSale ?? 0;
         
            Console.WriteLine("Available tickets={0}", AvailableTickets);


        }
    }
}
வெளியீடு:


Available tickets=0
Press any key to continue . . .
சான்று நிரல்
using System;

namespace Nullabletypes
{
    class Program
    {
        static void Main(string[] args)
        {
            int? TicketOnSale = 100;
            int AvailableTickets = TicketOnSale ?? 0;
         
            Console.WriteLine("Available tickets={0}", AvailableTickets);


        }
    }
}

வெளியீடு:
Available tickets=100
Press any key to continue . . .
இதில் ?? என்பது நல்கோயல்சிங்க் (null coalescing) ஆபரேட்டர் எனப்படுகின்றது.
-நன்றி.
முத்து கார்த்திகேயன்,மதுரை.




ads Udanz

No comments:

Post a Comment