ToByte Method (String, IFormatProvider)

Convert.ToByte Method (String, IFormatProvider)

Converts the specified string representation of a number to an equivalent 8-bit unsigned integer, using specified culture-specific formatting information.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static byte ToByte(
	string value,
	IFormatProvider provider


Type: System.String
A string that contains the number to convert.
Type: System.IFormatProvider
An object that supplies culture-specific formatting information.

Return Value

Type: System.Byte
An 8-bit unsigned integer that is equivalent to value, or zero if value is null.


value does not consist of an optional sign followed by a sequence of digits (0 through 9).


value represents a number that is less than Byte.MinValue or greater than Byte.MaxValue.

provider is an IFormatProvider instance that obtains a NumberFormatInfo object. The NumberFormatInfo object provides culture-specific information about the format of value. If provider is null, the NumberFormatInfo object for the current culture is used.

If you prefer not to handle an exception if the conversion fails, you can call the Byte.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.

The following example creates a custom NumberFormatInfo object that defines the positive sign as "pos" and the negative sign as "neg", which it uses in calls to the ToByte(String, IFormatProvider) method. It then calls the ToByte(String, IFormatProvider) method repeatedly to convert each element in a string array to a Byte value.

using System;
using System.Globalization;

public class Example
   public static void Main()
      // Create a NumberFormatInfo object and set several of its
      // properties that apply to unsigned bytes.
      NumberFormatInfo provider = new NumberFormatInfo();

      // These properties affect the conversion.
      provider.PositiveSign = "pos ";
      provider.NegativeSign = "neg ";

      // This property does not affect the conversion.
      // The input string cannot have a decimal separator.
      provider.NumberDecimalSeparator = ".";

      // Define an array of numeric strings.
      string[] numericStrings = { "234", "+234", "pos 234", "234.", "255", 
                                  "256", "-1" };

      foreach (string numericString in numericStrings)
         Console.Write("'{0,-8}' ->   ", numericString);
         try {
            byte number = Convert.ToByte(numericString, provider);
         catch (FormatException) {
            Console.WriteLine("Incorrect Format");
         catch (OverflowException) {
            Console.WriteLine("Overflows a Byte");
// The example displays the following output:
//       '234     ' ->   234
//       '+234    ' ->   Incorrect Format
//       'pos 234 ' ->   234
//       '234.    ' ->   Incorrect Format
//       '255     ' ->   255
//       '256     ' ->   Overflows a Byte
//       '-1      ' ->   Incorrect Format

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

© 2015 Microsoft