C# 中的 Convert.ToSByte(String, IFormatProvider) 方法

2024 年 8 月 29 日 | 4 分钟阅读

在本文中,您将学习 C# 中 Convert.ToSByte(String, IFormatProvider) 方法的语法、参数和示例。

Convert.ToSByte(String, IFormatProvider) 方法是什么?

在 C# 中,Convert.ToSByte(String, IFormatProvider) 方法使用指定的格式提供程序将数字的指定字符串表示形式转换为等效的带符号字节 (SByte)

语法

它具有以下语法:

参数

value: 包含要转换的数字的字符串。

provider: 这是一个 IFormatProvider,提供区域性特定的格式信息。它可以为 null 以使用默认格式提供程序。

返回值

转换的结果返回一个带符号字节 (sbyte)。

异常

适当地处理由过程抛出的异常非常重要。常见异常的示例如下:

  • FormatException: 当字符串的格式不正确时抛出此异常,称为 FormatException。
  • OverflowException: 如果转换导致溢出,则会引发溢出异常。

示例

让我们举一个例子来说明 C# 中的 Convert.ToSByte(String, IFormatProvider) 方法。

输出

Attempting to convert '123' to SByte.
Conversion successful, and the Result is 123
Attempting to convert 'abc' to SByte.
Invalid format for the conversion.
Attempting to convert '256' to SByte.
The overflow occurred during the conversion.
Attempting to convert '123,45' to SByte.
Invalid format for the conversion.

说明

1. Main 方法: Main 方法是程序的入口点。它演示了四种不同的方式来使用 PerformingSByteConversion 方法将字符串转换为 sbyte。

示例 1: 使用字符串 "123" 的有效转换。

示例 2: 对字符串 "abc" 进行的无效格式转换尝试。

示例 3: 尝试转换字符串 "256" 导致溢出。

示例 4: 使用自定义格式提供程序 (fr-FR - 法语文化) 转换字符串 "123,45"

2. 执行 SbyteConversion 方法: 此方法负责执行 ToSByte 功能并处理可能的异常。

  • 该方法接受一个 value 和一个可选的 provider 参数,用于自定义格式提供程序。
  • 它打印一条消息,指示尝试转换提供的字符串。
  • 它在 try 块内尝试将字符串转换为 sbyte
  • 如果转换成功,则打印结果。
  • 如果发生 FormatException,它通过打印有关无效格式的消息来处理。
  • 如果发生 OverflowException,它通过打印有关溢出的消息来处理。
  • catch (Exception e) 块是用于捕获任何意外异常的通用捕获块,它打印包含异常详细信息的消息。
  • 每种情况都以空行结束,以便在控制台输出中提高可读性。

格式异常

让我们举一个例子来说明 C# 中 Convert.ToSByte(String, IFormatProvider) 方法中的格式异常。

输出

Format exception: The input string was not in the correct format.

说明

此代码演示了如何使用 "Convert.ToSByte" 和自定义格式提供程序,以及如何在转换无法成功执行时处理 FormatException。由于在这种特定情况下无法转换为 带符号字节,因此非数字字符串 "pqr" 会引发 FormatException。之后,异常消息会打印到控制台。

溢出异常

让我们举一个例子来说明 C# 中 Convert.ToSByte(String, IFormatProvider) 方法中的溢出异常。

输出

Overflow Exception: The value was too large or too small for a signed byte.

说明

在此示例中,使用 "Convert.ToSByte" 尝试将字符串 "128" 转换为 带符号字节; 但是,结果超出了带符号字节 (-128 到 127) 的允许范围。因此,将引发 OverflowException,代码将相应地捕获和处理该异常。