#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll
#endregion
using System.Runtime.InteropServices;
using System.Security;
namespace System.Text
{
//
// 摘要:
// 将一组字符转换为一个字节序列。
[ComVisible(true)]
public abstract class Encoder
{
//
// 摘要:
// 初始化 System.Text.Encoder 类的新实例。
protected Encoder();
//
// 摘要:
// 获取或设置 System.Text.EncoderFallback 当前对象 System.Text.Encoder 对象。
//
// 返回结果:
// 一个 System.Text.EncoderFallback 对象。
//
// 异常:
// T:System.ArgumentNullException:
// 设置操作中的值是 null (Nothing)。
//
// T:System.ArgumentException:
// 不能在设置操作中分配一个新值,因为当前 System.Text.EncoderFallbackBuffer 对象包含尚未编码的数据。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
[ComVisible(false)]
public EncoderFallback Fallback { get; set; }
//
// 摘要:
// 获取 System.Text.EncoderFallbackBuffer 关联与当前对象 System.Text.Encoder 对象。
//
// 返回结果:
// 一个 System.Text.EncoderFallbackBuffer 对象。
[ComVisible(false)]
public EncoderFallbackBuffer FallbackBuffer { get; }
//
// 摘要:
// 将 Unicode 字符的数组转换为编码字节序列,并将结果存储在字节数组中。
//
// 参数:
// chars:
// 要转换的字符数组。
//
// charIndex:
// 要转换的 chars 的第一个元素。
//
// charCount:
// 要转换的 chars 的元素数。
//
// bytes:
// 存储已转换的字节的数组。
//
// byteIndex:
// 存储数据的 bytes 的第一个元素。
//
// byteCount:
// 要在转换中使用的 bytes 的元素的最大数量。
//
// flush:
// 如果没有更多的数据要进行转换,则为 true;否则为 false。
//
// charsUsed:
// 当此方法返回时,包含来自在转换中使用的 chars 的字符数。 此参数未经初始化即被传递。
//
// bytesUsed:
// 当此方法返回时,包含由转换生成的字节数。 此参数未经初始化即被传递。
//
// completed:
// 当此方法返回时,如果转换了所有由 charCount 指定的字符,则包含 true;否则包含 false。 此参数未经初始化即被传递。
//
// 异常:
// T:System.ArgumentNullException:
// chars 或 bytes 为 null (Nothing)。
//
// T:System.ArgumentOutOfRangeException:
// charIndex、charCount、byteIndex 或 byteCount 小于零。 - 或 - chars 的长度 - charIndex 小于
// charCount。 - 或 - bytes 的长度 - byteIndex 小于 byteCount。
//
// T:System.ArgumentException:
// 输出缓冲区太小,无法包含任何已转换的输出。 输出缓冲区应大于或等于由 Overload:System.Text.Encoder.GetByteCount
// 方法指示的大小。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
[ComVisible(false)]
public virtual void Convert(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed);
//
// 摘要:
// 将 Unicode 字符的缓冲区转换为编码的字节序列,并将结果存储在另一个缓冲区中。
//
// 参数:
// chars:
// 要转换的 UTF-16 编码字符的字符串的地址。
//
// charCount:
// 要转换的 chars 中的字符数。
//
// bytes:
// 用于存储已转换字节的缓冲区的地址。
//
// byteCount:
// 要在转换中使用的 bytes 中的最大字节数。
//
// flush:
// 如果没有更多的数据要进行转换,则为 true;否则为 false。
//
// charsUsed:
// 当此方法返回时,包含来自在转换中使用的 chars 的字符数。 此参数未经初始化即被传递。
//
// bytesUsed:
// 当此方法返回时,包含在转换中使用的字节数。 此参数未经初始化即被传递。
//
// completed:
// 当此方法返回时,如果转换了所有由 charCount 指定的字符,则包含 true;否则包含 false。 此参数未经初始化即被传递。
//
// 异常:
// T:System.ArgumentNullException:
// chars 或 bytes 为 null (Nothing)。
//
// T:System.ArgumentOutOfRangeException:
// charCount 或 byteCount 小于零。
//
// T:System.ArgumentException:
// 输出缓冲区太小,无法包含任何已转换的输出。 输出缓冲区应大于或等于由 Overload:System.Text.Encoder.GetByteCount
// 方法指示的大小。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
[CLSCompliant(false)]
[ComVisible(false)]
[SecurityCritical]
public virtual void Convert(char* chars, int charCount, byte* bytes, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed);
//
// 摘要:
// 在派生类中重写时,计算对指定字符数组中的一组字符进行编码所产生的字节数。 一个参数,指示是否在计算后清除编码器的内部状态。
//
// 参数:
// chars:
// 包含要编码的字符集的字符数组。
//
// index:
// 第一个要编码的字符的索引。
//
// count:
// 要编码的字符的数目。
//
// flush:
// true 若要模拟的计算; 之后清除编码器的内部状态否则为 false。
//
// 返回结果:
// 对指定的字符和内部缓冲区中的所有字符进行编码时产生的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// chars 为 null。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 也不可小于零。 - 或 - index 和 count 不表示 chars 中的有效范围。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
public abstract int GetByteCount(char[] chars, int index, int count, bool flush);
//
// 摘要:
// 在派生类中重写时,计算对一组字符(从指定的字符指针处开始)进行编码所产生的字节数。 一个参数,指示是否在计算后清除编码器的内部状态。
//
// 参数:
// chars:
// 指向第一个要编码的字符的指针。
//
// count:
// 要编码的字符的数目。
//
// flush:
// true 若要模拟的计算; 之后清除编码器的内部状态否则为 false。
//
// 返回结果:
// 对指定的字符和内部缓冲区中的所有字符进行编码时产生的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// chars 是 null (Nothing 在 Visual Basic.NET)。
//
// T:System.ArgumentOutOfRangeException:
// count 小于零。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
[CLSCompliant(false)]
[ComVisible(false)]
[SecurityCritical]
public virtual int GetByteCount(char* chars, int count, bool flush);
//
// 摘要:
// 当在派生类中重写,将一组指定的字符数组中的字符和内部缓冲区中的所有字符编码到指定的字节数组。 一个参数,指示是否在转换后清除编码器的内部状态。
//
// 参数:
// chars:
// 包含要编码的字符集的字符数组。
//
// charIndex:
// 第一个要编码的字符的索引。
//
// charCount:
// 要编码的字符的数目。
//
// bytes:
// 要包含所产生的字节序列的字节数组。
//
// byteIndex:
// 要开始写入所产生的字节序列的索引位置。
//
// flush:
// true 若要在转换; 后清除编码器的内部状态否则为 false。
//
// 返回结果:
// 写入 bytes 的实际字节数。
//
// 异常:
// T:System.ArgumentNullException:
// chars 为 null (Nothing)。 - 或 - bytes 为 null (Nothing)。
//
// T:System.ArgumentOutOfRangeException:
// charIndex 或 charCount 或 byteIndex 也不可小于零。 - 或 - charIndex 和 charCount 不表示 chars
// 中的有效范围。 - 或 - byteIndex 不是 bytes 中的有效索引。
//
// T:System.ArgumentException:
// bytes 没有足够的容量,从 byteIndex 到以适应所产生的字节数组的末尾。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, bool flush);
//
// 摘要:
// 当在派生类中重写,将编码为一个序列的并从指定的字节指针开始存储的字节数指定的字符指针以及内部缓冲区中的任何字符开头的字符的一组。 一个参数,指示是否在转换后清除编码器的内部状态。
//
// 参数:
// chars:
// 指向第一个要编码的字符的指针。
//
// charCount:
// 要编码的字符的数目。
//
// bytes:
// 一个指针,指向开始写入所产生的字节序列的位置。
//
// byteCount:
// 最多写入的字节数。
//
// flush:
// true 若要在转换; 后清除编码器的内部状态否则为 false。
//
// 返回结果:
// 在由 bytes 参数指示的位置处写入的实际字节数。
//
// 异常:
// T:System.ArgumentNullException:
// chars 为 null (Nothing)。 - 或 - bytes 为 null (Nothing)。
//
// T:System.ArgumentOutOfRangeException:
// charCount 或 byteCount 也不可小于零。
//
// T:System.ArgumentException:
// byteCount 小于所产生的字节数。
//
// T:System.Text.EncoderFallbackException:
// 发生了回退(有关更完整的说明,请参阅 .NET Framework 中的字符编码) -和- 将 System.Text.Encoder.Fallback
// 设置为 System.Text.EncoderExceptionFallback。
[CLSCompliant(false)]
[ComVisible(false)]
[SecurityCritical]
public virtual int GetBytes(char* chars, int charCount, byte* bytes, int byteCount, bool flush);
//
// 摘要:
// 当在派生类中重写,会将编码器设置回其初始状态。
[ComVisible(false)]
public virtual void Reset();
}
}