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#

convert.ToSByte(string, IFormatProvider) Method in C#

In this article, we will discuss the convert.ToSbyte() method in C# with its syntax, parameters, exceptions, and examples.

What is the convert.ToSbyte() method?

The convert.ToSbyte() method transforms the given string representation of a number into an equivalent 8-bit signed integer using the specified culture-specific formatting information.

Syntax:

It has the following syntax:

public static sbyte ToSByte (string value, IFormatProvider provider);

Parameters:

  • value: The number to be converted is contained in a string.
  • provider: It is a commodity that offers formatting details specific to a certain culture.
  • Return Value: The value returned by this method is an 8-bit signed integer.

Exceptions:

  • ArgumentNullException: If the value is null, raise ArgumentNullException.
  • FormatException: When a value is entered without an optional sign and then a string of digits (0 through 9).
  • OverFlowException: If the value is either greater than or less than the maximum value.

Example:

Let us take an example to illustrate the Convert.ToSbyte() method in C#.

using System;

using System.Globalization;

class CustomFormatProvider : IFormatProvider, ICustomFormatter

{

    public object GetFormat(Type formatType)

    {

        if (formatType == typeof(ICustomFormatter))

        {

            return this;

        }

        else

        {

            return null;

        }

    }

    public string Format(string format, object arg, IFormatProvider formatProvider)

    {

        if (arg is sbyte)

        {

            // Custom formatting logic for sbyte

            sbyte value = (sbyte)arg;

            return $"Formatted SByte: {value.ToString(format, CultureInfo.InvariantCulture)}";

        }

        else

        {

            // Use default formatting for other types

            return arg.ToString();

        }

    }

}

class Program

{

    static void Main()

    {

        string numberString = "42";

        try

        {

            // Using Convert.ToSByte with a custom format provider

            sbyte result = Convert.ToSByte(numberString, new CustomFormatProvider());

            Console.WriteLine($"Converted and formatted value: {result}");

        }

        catch (FormatException)

        {

            Console.WriteLine("Invalid format for conversion.");

        }

        catch (OverflowException)

        {

            Console.WriteLine("Value is outside the range of a signed byte.");

        }

    }

}

Output:

Converted and formatted value: 42

If the string number is example 425

Value is outside the range of a signed byte.

Explanation:

  • In this example, we use the IFormatProvider and ICustomFormatter interfaces implemented by the custom format provider (CustomFormatProvider). For the sbyte type, the CustomFormatProvider offers unique formatting logic.
  • An instance of CustomFormatProvider is passed as the second argument when calling Convert.ToSByte. By using the custom logic specified in the format provider, we can now regulate how the converted sbyte value is formatted.
  • It allows modifying the input numbering and the CustomFormatProvider class to meet unique needs.

Example 2:

Let us take another example to illustrate the Convert.ToSbyte() method in C#.

using System;

using System.Globalization;

class Program

{

    // Main Method

    public static void Main()

    {

        try

        {

            // Creating an object of CultureInfo

            CultureInfo customCulture = new CultureInfo("en-US");

            // Declaring and initializing an array of string values

            string[] numericStrings = { "42", "+99", "-75" };

            // Calling the ConvertAndDisplaySByteValues() method

            Console.Write("Converted sbyte values from specified strings: ");

            ConvertAndDisplaySByteValues(numericStrings, customCulture);

        }

        catch (FormatException e)

        {

            Console.WriteLine("\n");

            Console.Write("FormatException Thrown: ");

            Console.Write("{0}", e.GetType(), e.Message);

        }

        catch (OverflowException e)

        {

            Console.WriteLine("\n");

            Console.Write("OverflowException Thrown: ");

            Console.Write("{0}", e.GetType(), e.Message);

        }

    }

    // Defining the ConvertAndDisplaySByteValues() method

    public static void ConvertAndDisplaySByteValues(string[] values, CultureInfo culture)

    {

        foreach (var stringValue in values)

        {

            // Converting string to specified sbyte using the specified culture

            sbyte convertedValue = Convert.ToSByte(stringValue, culture);

            // Displaying the converted sbyte value

            Console.Write(" {0}, ", convertedValue);

        }

    }

}

Output:

Converted sbyte values from specified strings: 42,  99,  -75.

Example 3:

Let us take another example to illustrate the Convert.ToSbyte() method in C#.

using System;

using System.Globalization;

class Program

{

    // Main Method

    public static void Main()

    {

        try

        {

            // Creating an object of CultureInfo

            CultureInfo customCulture = new CultureInfo("en-US");

            // Declaring and initializing an array of string values

            string[] numericStrings = { "55", "+28", "-93" };

            // Calling the ConvertAndDisplaySByteValues() method

            Console.Write("Converted sbyte values of specified strings: ");

            ConvertAndDisplaySByteValues(numericStrings, customCulture);

            Console.WriteLine("\n");

            // Example demonstrating MinValue and OverflowException

            string s = "9007199254740992"; // A value larger than SByte.MaxValue

            Console.WriteLine("s is greater than the MaxValue");

            // Converting string to specified sbyte

            sbyte val = Convert.ToSByte(s, customCulture);

            // Displaying the converted sbyte value

            Console.Write(" {0}, ", val);

        }

        catch (FormatException e)

        {

            Console.Write("FormatException Thrown: ");

            Console.Write("{0}", e.GetType(), e.Message);

        }

        catch (OverflowException e)

        {

            Console.Write("OverflowException Thrown: ");

            Console.Write("{0}", e.GetType(), e.Message);

        }

    }

    // Defining the ConvertAndDisplaySByteValues() method

    public static void ConvertAndDisplaySByteValues(string[] values, CultureInfo culture)

    {

        foreach (var stringValue in values)

        {

            // Converting string to specified sbyte using the specified culture

            sbyte convertedValue = Convert.ToSByte(stringValue, culture);

            // Displaying the converted sbyte value

            Console.Write(" {0}, ", convertedValue);

        }

    }

}

OUTPUT:

Converted sbyte values of specified strings:  55,  28,  -93,

s is greater than the MaxValue

OverflowException Thrown: System.OverflowException

Conclusion:

In conclusion, the provided C# program shows how to convert string representations of numbers into signed bytes (sbyte) using the Convert.ToSByte() method. The program uses a custom CultureInfo object to specify formatting rules during the conversion process. It demonstrates how to successfully use a custom culture to convert various numeric strings, including those with positive, negative, and zero values. The program also contains an example that shows how the method handles values larger than SByte.MaxValue, which causes an OverflowException to occur. It illustrates how crucial it is to validate input values to make sure they are within a signed byte's valid range. Through the use of try-catch blocks to catch potential FormatExceptions and OverflowExceptions that may arise during the conversion process, the code structure places a strong emphasis on error handling.