Type Casting and Conversion in C# Programming


Introduction

Type casting and conversion allow you to convert a variable of one data type into another. In C#, type casting can be implicit or explicit, and you can also use the Convert class for more advanced conversions.

Implicit Casting

Implicit casting (type-safe) occurs automatically when there is no risk of data loss. It typically happens when converting a smaller data type to a larger one.

Example of Implicit Casting

    using System;
   class Program
    {
        static void Main()
        {
            int intNumber = 42;
            double doubleNumber = intNumber; // Implicit casting: int to double
           Console.WriteLine("Integer: " + intNumber);
            Console.WriteLine("Converted to Double: " + doubleNumber);
        }
    }
        

Explicit Casting

Explicit casting requires the use of a cast operator because there is a risk of data loss. It is used when converting a larger data type to a smaller one.

Example of Explicit Casting

    using System;
   class Program
    {
        static void Main()
        {
            double doubleNumber = 42.58;
            int intNumber = (int)doubleNumber; // Explicit casting: double to int
           Console.WriteLine("Double: " + doubleNumber);
            Console.WriteLine("Converted to Integer: " + intNumber);
        }
    }
        

Using the Convert Class

The Convert class provides methods for converting between data types. It is useful when implicit or explicit casting is not applicable.

Example of Using the Convert Class

    using System;
   class Program
    {
        static void Main()
        {
            string stringNumber = "123";
            int intNumber = Convert.ToInt32(stringNumber); // Convert string to int
            double doubleNumber = Convert.ToDouble(intNumber); // Convert int to double
           Console.WriteLine("String: " + stringNumber);
            Console.WriteLine("Converted to Integer: " + intNumber);
            Console.WriteLine("Converted to Double: " + doubleNumber);
        }
    }
        

Additional Example

Combining implicit, explicit casting, and the Convert class:

    using System;
   class Program
    {
        static void Main()
        {
            // Implicit casting
            float floatNumber = 45.67f;
            double doubleNumber = floatNumber;
            Console.WriteLine("Implicit Casting (float to double): " + doubleNumber);
           // Explicit casting
            double largeDouble = 123.45;
            int smallInt = (int)largeDouble;
            Console.WriteLine("Explicit Casting (double to int): " + smallInt);
           // Using Convert class
            string text = "456";
            int convertedInt = Convert.ToInt32(text);
            Console.WriteLine("Using Convert Class (string to int): " + convertedInt);
        }
    }
        

Conclusion

In C#, type casting and conversion are essential for manipulating data types effectively. Implicit casting is automatic and safe, explicit casting requires caution, and the Convert class provides additional flexibility for complex conversions.




Advertisement