System.InvalidCastException

 


ஒவ்வொரு மதிப்புக்கும் .NET கட்டமைப்பில் தொடர்புடைய வகை உள்ளது, இது மதிப்புக்கு ஒதுக்கப்பட்ட இடத்தின் அளவு, அதிகபட்சமாக இருக்கக்கூடிய மதிப்புகளின் வரம்பு மற்றும் அது கிடைக்கக்கூடிய உறுப்பினர்கள் போன்ற பண்புகளை வரையறுக்கிறது.

வகை மாற்றம் என்றால் என்ன?

வகை மாற்றம் என்பது ஒரு வகை தரவை மற்றொரு வகையாக மாற்றுகிறது. இதன் பொருள், இது ஒரு புதிய வகையின் மதிப்பை உருவாக்குகிறது, இது பழைய வகையின் மதிப்புக்கு சமமானதாகும், ஆனால் இது அசல் வகையின் சரியான மதிப்பை (அல்லது அடையாளத்தை) பாதுகாக்க வேண்டிய அவசியமில்லை.இது டைப் காஸ்டிங்(Type Casting) என்றும் அழைக்கப்படுகிறது.

மைக்ரோசாப்ட் .Net கட்டமைப்பு தானாக பின்வரும் வகை மாற்றங்களை ஆதரிக்கிறது:

  1. ஒரு அடிப்படை வகுப்பிற்கு பெறப்பட்ட வகுப்பு.
  2. அசல் பெறப்பட்ட வகுப்பிற்கு ஒரு அடிப்படை வகுப்பு.
  3. அந்த இடைமுகத்தை குறிக்கும் இடைமுக பொருளுக்கு இடைமுகத்தை செயல்படுத்தும் வகை.
  4. அந்த இடைமுகத்தை செயல்படுத்தும் அசல் வகைக்கு ஒரு இடைமுக பொருள்.
InvalidCastException என்றால் என்ன?

ஒரு வகையிலிருந்து மற்றொரு வகைக்கு அனுப்பப்படும்போது ஒரு தவறான காஸ்ட் எக்ஸ்செப்ஷன் எறியப்படும்.சில குறிப்பு வகை மாற்றங்களில், ஒரு தொகுப்பி செல்லுபடியாகுமா என்பதை தொகுப்பால் தீர்மானிக்க முடியாது.மூல வகையை இலக்கு வகையாக மாற்ற முடியாது என்பதால் தான், cast வெற்றிபெறவில்லை.

எடுத்துக்காட்டாக, நீங்கள் ஒரு char மதிப்பை DateTime மதிப்பாக மாற்ற முயற்சித்தால் தவறான கேஸ்ட் எக்ஸ்செப்சன் விதிவிலக்கு வீசுகிறது.

இந்த விதிவிலக்கு நிரலாக்கப் பிழையால் ஏற்படுகிறது என்பதைக் கவனத்தில் கொள்ள வேண்டியது அவசியம், மேலும் அதை முயற்சி / பிடிப்புத் தொகுதியில் கையாளக்கூடாது.அதற்கு பதிலாக, விதிவிலக்குக்கான காரணம் அகற்றப்பட வேண்டும்.

உதாரணம்

class Program
{
      static void Main(string[] args)
      {
            object obj = new Object();
            int j;
            try
            {
                  j = (int)obj;
            }
            catch (InvalidCastException ex)
            {
                  Console.WriteLine(ex);
            }
      }
}

வெளியீடு

System.InvalidCastException: Specified cast is not valid.

Ragam

I want to be a good person

Post a Comment (0)
Previous Post Next Post