Unsafe Code in C#

Unsafe code in C# is the part of the program that runs outside the control of the Common Language Runtime (CLR) of the .NET frameworks. The CLR is responsible for all of the background tasks that the programmer doesn’t have to worry about like memory allocation and release, managing stack etc. Using the keyword “unsafe” means telling the compiler that the management of this code will be done by the programmer. Making a code content unsafe introduces stability and security risks as there are no bound checks in cases of arrays, memory related errors can occur which might remain unchecked etc. A programmer can make the following sub-programs as unsafe:

  1. Code blocks
  2. Methods
  3. Types
  4. Class
  5. Struct
  6. Need to use the unsafe code?

    • When the program needs to implement pointers.
    • If native methods are used.

    Syntax:

    unsafe Context_declaration

    Example:

    Here, we are declaring a block of code inside main as unsafe so that we can use pointers.

// C# program to demonstrate the unsafe code
using System;

namespace GFG {

class Program {

    // Main Method
    static void Main(string[] args)
    {
        // Declaring a code block as 
        // unsafe to make use of pointers
        unsafe
        {
            int x = 10;
            int* ptr;
            ptr = &x;

            // displaying value of x using pointer
            Console.WriteLine("Inside the unsafe code block");
            Console.WriteLine("The value of x is " + *ptr);
        } // end unsafe block

        Console.WriteLine("\nOutside the unsafe code block");
    } // end main
}
}

Comments

Popular posts from this blog

C# | Association, Aggregation and Composition

Throw vs Throw ex in C#

C# Extension Method