Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Convert.ChangeType: डायनामिक टाइप कनवर्जन


Convert.ChangeType(object value, TypeCode typeCode) रनटाइम पर निर्दिष्ट टाइप में कनवर्ट करता है। रिफ्लेक्शन/डायनामिक कोड के लिए उपयोगी।

उदाहरण

using System;

public class Demo
{
    public static void Main()
    {
        double val = -3.456;
        
        // TypeCode.Int32 का उपयोग करके int में बदलें
        int num = (int)Convert.ChangeType(val, TypeCode.Int32);
        
        Console.WriteLine("{0} को Int32 में बदला: {1}", val, num);
    }
}

आउटपुट

-3.456 को Int32 में बदला: -3

TypeCode एनम (मुख्य)

TypeCode.Boolean, Byte, Char, DateTime, Decimal, Double,
Int16, Int32, Int64, SByte, Single, String,
UInt16, UInt32, UInt64, Object, DBNull, Empty, Object

महत्वपूर्ण सीमाएं

  • केवल **IConvertible** लागू करने वाले टाइप्स के साथ काम करता है।
  • कस्टम टाइप्स/क्लासेस के लिए काम **नहीं** करता।
  • null मान के लिए TypeCode.Empty या डिफ़ॉल्ट मान लौटाता है (टार्गेट टाइप पर निर्भर)।
  • कस्टम कनवर्जन के लिए TypeConverter या मैन्युअल कास्टिंग उपयोग करें।

वैकल्पिक: IFormatProvider के साथ

object result = Convert.ChangeType("123.45", typeof(double), CultureInfo.InvariantCulture);
  1. - C# में Convert.ToDecimal मेथड

    Convert.ToDecimal() मेथड का उपयोग करके किसी निर्दिष्ट मान को डेसीमल संख्या में बदलें।हमारे पास यहाँ एक स्ट्रिंग है।string stringVal = "2,345.26";अब, इसे डेसीमल संख्या में बदलने के लिए Convert.ToDecimal() मेथड का उपयोग करें।decimal decimalVal; decimalVal = System.Convert.ToDecimal(stringVal

  1. - C# में Convert.ToUInt16 मेथड

    निर्दिष्ट मान को 16-बिट अनसाइन्ड इंटीजर में बदलने के लिए Convert.ToUInt16 मेथड का उपयोग करें।यहाँ हमारी स्ट्रिंग है:string str = "1129";अब इसे 16-बिट अनसाइन्ड इंटीजर में बदलें।ushort res; res = Convert.ToUInt16(str);निम्नलिखित पूरा उदाहरण है:उदाहरणusing System; public class Demo {   &

  1. - C# में Convert.ToInt16 मेथड

    C# में Convert.ToInt16 मेथड का उपयोग करके निर्दिष्ट मान को 16-बिट साइन्ड इंटीजर में बदलें।हमारे पास एक डबल वेरिएबल है जिसमें मान आरंभ किया गया है।double doubleNum = 3.456;अब, इसे Int16 यानी short में बदलें।short shortNum; shortNum = Convert.ToInt16(doubleNum);यहाँ पूरा उदाहरण है:उदाहरणusing System;