更新:2007 年 11 月
sbyte 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。
类型  | 范围  | 大小  | .NET Framework 类型  | 
|---|---|---|---|
sbyte  | -128 到 127  | 有符号 8 位整数  | 
标识符
可使用下述方法声明并初始化 sbyte 类型的变量:
sbyte sByte1 = 127;  | |
在以上声明中,整数 127 从 
调用重载方法时必须使用强制转换。以下面使用 sbyte 和 
public static void SampleMethod(int i) {}
public static void SampleMethod(sbyte b) {} | |
使用 sbyte 强制转换可保证调用正确的类型,例如:
// Calling the method with the int parameter: SampleMethod(5); // Calling the method with the sbyte parameter: SampleMethod((sbyte)5);  | |
转换
存在从 sbyte 到 
不能将存储大小更大的非文本数值类型隐式转换为 sbyte 类型(有关整型的存储大小的信息,请参见 整型表(C# 参考))。例如,请看以下两个 sbyte 变量 x 和 y:
sbyte x = 10, y = 20;  | |
以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式在默认情况下的计算结果为 
sbyte z = x + y; // Error: conversion from int to sbyte  | |
若要更正此问题,请对该表达式执行强制转换,如下例所示:
sbyte z = (sbyte)(x + y); // OK: explicit conversion  | |
但是,在目标变量具有相同或更大的存储大小时,使用下列语句是可能的:
sbyte x = 10, y = 20; int m = x + y; long n = x + y;  | |
还请注意,不存在从浮点型到 sbyte 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:
sbyte x = 3.0; // Error: no implicit conversion from double sbyte y = (sbyte)3.0; // OK: explicit conversion  | |
有关兼用浮点型和整型的算术表达式的信息,请参见 
有关隐式数值转换规则的更多信息,请参见隐式数值转换表(C# 参考)。
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.3 类型和变量
4.1.5 整型