C# Tutorial

C# Tutorial C# First Application C# Variables C# Data Types C# Operators C# Keywords

C# Control Statement

C# If Statements C# Switch Statements C# for Loop C# While Loop C# do While loop C# Jump Statements C# Function C# functions with out variable

C# Arrays

C# Arrays

C# Function

C# Function call by value C# Call by reference C# Passing array to function C# Multidimensional Arrays C# Jagged Arrays C# Params C# Array Class C# Command Line Arguments

C# Object Class

C# Object and Classes C# Constructors C# Destructor C# this Keyword C# static field C# static class C# Static Constructor C# Structs C# enum C# Properties

C# Inheritance

C# Inheritance C# Multilevel Inheritance C# Aggregation C# Member overloading C# Method Overriding C# Base

C# Polymorphism

C# Polymorphism C# Sealed

C# Abstraction

C# Abstraction C# Interface

C# Namespace

C# Namespace C# Access Modifiers C# Encapsulation

C# Strings

C# String

C# Misc

C# Design Patterns Dictionary in C# Boxing and Unboxing in C# Ref and Out in C# Serialization in C# Dispose and Finalize in C# CONSOLE LOG IN C# Get File extension in C# Insert query in c# Difference Between List and Dictionary in C# Getters and Setters in C# Extension Methods in C# Insert query in c# CONSOLE LOG IN C# Get File extension in C# Random.NextDouble() Method in C# Binary Search in C# Difference between Delegates and Interfaces in C# Double.IsFinite() Method in C# Index Constructor in C# Abstraction in C# Basic OOPS Concepts In C# Queue.CopyTo() Method in C# single.compareto() method in C# C# Throw Exception in Constructor DECODE IN C# file.setlastwritetimeutc() method in C# Convert Object to List in C# convert.ToSByte(string, IFormatProvider) Method in C# C# Declare Delegate in Interface console.TreatControl C As Input property in C# Copying the queue elements to 1-D Array in C# Array.Constrainedcopy() Method in C# C# in and out Char.IsLetterOrDigit() method in C# Debugging in C# decimal.compare() method in C# Difference between Console.Read and Console.Readline in C# Metadata in C# C# Event Handler Example Default Interface Methods in C# Difference between hashtable and dictionary in C# C# program to implement IDisposable Interface Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File C# Error Logging C# ENCRIPTION Can we create an object for Abstract Class in C# Console.CursorVisible in C# SortedDictionary Implementation in C# C# Hash Table with Examples Setting the Location of the Label in c# Collections in c# Virtual Keyword in C# Reverse of string in C# String and StringBuilder in C# Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File Difference between ref and out in C# Singleton Class in C# Const And Readonly In Csharp BinaryReader and BinaryWriter in C# C# Attributes C# Delegates DirectoryInfo Class in C# Export and Import Excel Data in C# File Class in C# FileInfo Class in C# How to Cancel Parallel Operations in C#? Maximum Degree of Parallelism in C# Parallel Foreach Loop in C# Parallel Invoke in C# StreamReader and StreamWriter in C# TextReader and TextWriter in C# AsQueryable() in C# Basic Database Operations Using C# C# Anonymous Methods C# Events C# Generics C# Indexers C# Multidimensional Indexers C# Multithreading C# New Features C# Overloading of Indexers Difference between delegates and events in C# Operator overloading in C# Filter table in C# C# Queue with Examples C# Sortedlist With Examples C# Stack with Examples C# Unsafe Code File Handling in C# HashSet in C# with Examples List Implementation in C# SortedSet in C# with Examples C# in Depth Delegates and Events in C# Finally Block in C# How to Split String in C# Loggers in C# Nullable Types in C# REVERSE A STRING IN C# TYPE CASTING IN C# What is Generics in C# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# Atomic Methods Thread Safety and Race Conditions in C# Parallel LINQ in C# Design Principles in C# Difference Between Struct And Class In C# Difference between Abstraction and Encapsulation in C# Escape Sequence Characters in C# What is IOC in C# Multiple Catch blocks in C# Appdomain in C# Call back methods in C# Change Datetime format in C# Declare String array in C# Default Access Specifier in c# Foreach in LINQ C# How to compare two lists in C# How to Convert String to Datetime in c# How to get only Date from DateTime in C# Ispostback in asp net C# JSON OBJECT IN C# JSON STRINGIFY IN C# LAMBDA FUNCTION IN C# LINQ Lambda Expression in C# Microservices in C# MSIL IN C# Reference parameter in C# Shadowing(Method hiding) in C# Solid principles in C# Static Members in C# Task run in C# Transaction scope in C# Type Conversion in c# Unit of Work in C# Unit Test Cases in c# User Defined Exception in c# Using Keyword in C# Var Keyword in C# What is gac in C#

TYPE CASTING IN C#

INTRODUCTION

Changing an expression from one data type to another is called type casting in C#. It enables you to carry out functions and assignments acceptable to the target type by treating an object as belonging to another level of the hierarchy.

C# supports two types of casting: Implicit casting and Explicit casting.

IMPLICIT CASTING

When there is no chance of data loss, the compiler will automatically execute implicit casting, commonly called a widening conversion. It enables the conversion of values between more minor and more significant data types. Changing the value of an integer to a floating-point number is one example. No additional code or explicit syntax is needed for implicit casting. The compiler efficiently performs the conversion.

What you need to know regarding implicit casting in C# is as follows:

  • Implicit casting is an option within the type hierarchy when converting between compatible types. With no explicit casting or data loss, you can allocate a more specific value to a more general type parameter.
  • Unlike explicit casting, implicit casting does not necessitate any extra code or explicit type conversion syntax. The compiler automatically handles the conversion.
  • Implicit casting is utilized to increase the spectrum of data that can be stored in a variable. For instance, it was changing a double from a float or an integer from a float.

It's crucial to remember that implicit casting can occur if there is no chance of data or precision loss. Explicit casting is necessary for the conversion if it entails reducing the range or increasing precision. Implicit casting is only effective for type conversions between compatible types; it is only sometimes effective.

EXAMPLE

using System;

namespace MyApplication {

  class Program {

    static void Main(string[] args) {

      int numInt = 1200;

      Type a = numInt.GetType();

      double numDouble = numInt;

      Type x = numDouble.GetType();

      Console.WriteLine("numInt value: "+numInt);

      Console.WriteLine("numInt Type: " + a);

      Console.WriteLine("numDouble value: "+numDouble);

      Console.WriteLine("numDouble Type: " + x);

      Console.ReadLine();

    }

  }

}

OUTPUT

TYPE CASTING IN C#

EXPLICIT CASTING

A manual translation is necessary when there is a chance of data loss or when translating between incompatible types. It is sometimes referred to as narrowing conversion. It entails precisely using brackets and the intended type name to describe the desired type. When changing a value from a more significant data type to a smaller one, explicit casting is required to avoid losing precision or information. The programmer is responsible for ensuring the conversion is valid and compatible during explicit casting.

The following are some crucial specifics regarding explicit casting in C#:

  • Explicit casting requires the manual specification of the desired type by enclosing it in brackets and the destination type name. It enables you to narrow down a number that is of a more significant type, which could lead to accuracy loss or data loss.
  • When the target form cannot support the entire range or accuracy of the source type, explicit casting is often performed. The compiler demands that you expressly acknowledge that you are aware of the possibility of data loss since it reduces the spectrum or accuracy of the transformed value.
  • The casting operator, the desired type in brackets, is used with the value you wish to convert to execute explicit casting. The value is transformed to the target type if the transformation is successful.

It is crucial to remember that explicit casting should only be used sparingly since it may result in data loss or runtime problems if the conversion is invalid or the assigned value cannot fit inside the range of the destination type. It is advisable to use suitable type-checking techniques, such as the is a method or the as operator, to confirm that types are compatible and prevent potential exceptions before conducting explicit casting.

EXAMPLE

using System;

namespace MyApplication {

  class Program {

    static void Main(string[] args) {

      double numDouble = 12.27;

      int numInt = (int) numDouble; 

      Console.WriteLine("Original double Value: "+numDouble);

      Console.WriteLine("Converted int Value: "+numInt);

      Console.ReadLine();

    }

  }

}

OUTPUT

TYPE CASTING IN C#

CONCLUSION

Type casting in C# refers to changing an expression's data type. It enables you to carry out operations & allocations that are acceptable with the target type by treating an object as belonging to another category in the hierarchy. To change and manipulate data in C#, type casting must be understood. Type casting lets developers interact with various data types to accomplish the required behaviour in their applications, whether implicitly converting to broaden the spectrum of values or explicitly converting to limit the type.