跳转到内容

NETSquirrel - 指南/低复杂度

来自维基教科书,开放世界中的开放书籍

使用基本类型

[编辑 | 编辑源代码]

您可以通过NETSquirrel.Utils.BaseTypesUtilsNETSquirrel.Extensions.BaseTypesExtensions 类来读取所有基本类型的值并对它们进行一些额外的有用操作。 让我们考虑提供的功能。

从键盘读取基本类型的值

[编辑 | 编辑源代码]
方法
方法签名 简要描述
bool ReadBool(string) 从键盘读取指定提示的bool值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
byte ReadByte(string) 从键盘读取指定提示的byte值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
sbyte ReadSByte(string) 从键盘读取指定提示的sbyte值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
char ReadChar(string) 从键盘读取指定提示的char值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
decimal ReadDecimal(string) 从键盘读取指定提示的decimal值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
double ReadDouble(string) 从键盘读取指定提示的double值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
float ReadFloat(string) 从键盘读取指定提示的float值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
int ReadInt(string) 从键盘读取指定提示的int值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
uint ReadUInt(string) 从键盘读取指定提示的uint值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
long ReadLong(string) 从键盘读取指定提示的long值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
ulong ReadULong(string) 从键盘读取指定提示的ulong值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
short ReadShort(string) 从键盘读取指定提示的short值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
ushort ReadUShort(string) 从键盘读取指定提示的ushort值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。
string ReadString(string) 从键盘读取指定提示的string值并返回它。

参数:

  • prompt = "" - 描述要打印的提示

备注:

  • 如果prompt 为 null,则不输出任何提示。

方法名称中使用的总体思路是:ReadTypeName,其中TypeName - 是基本类型的名称。

ReadBool 用法示例

using NETSquirrel.Extensions;
using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            BaseTypesUtils.ReadBool("Bool:").PrintLine();
        }
    }
}
{$reference NETSquirrel.dll} 
uses NETSquirrel.Utils;

begin
  BaseTypesUtils.ReadBool('Bool:').PrintLine();
end.

值交换

[编辑 | 编辑源代码]
方法
方法签名 简要描述
void Swap<T>(ref T, ref T) 交换两个变量的值。

参数:

  • x - 第一个值
  • y - 第二个值

Swap 用法示例

using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            var x = 1;
            var y = 2;
            BaseTypesUtils.Swap(ref x, ref y); // x == 2, y == 1
        }
    }
}
{$reference NETSquirrel.dll} 
uses NETSquirrel.Utils;

begin
  var x := 1;
  var y := 2;
  BaseTypesUtils.Swap(x, y); // x = 2, y = 1
end.

从特定范围内生成序列

[编辑 | 编辑源代码]
扩展方法
方法签名 简要描述
bool IsBetween(this int, int, int) 评估作为this参数传递的值是否介于另外两个值之间,并返回相应的bool值。

参数:

  • target [this 参数] - 要评估的数字
  • low - 范围的最低边界
  • high - 范围的最高边界

备注:

  • 范围边界lowhigh 参与其中。
IEnumerable<int> To(this int, int) 生成从作为this参数传递的值到更高值的序列并返回它。

参数:

  • from [this 参数] - 序列的最低数字
  • to - 序列的最高数字

备注:

  • 范围边界fromto 参与其中。
  • 如果to 低于from,则返回空序列。
IEnumerable<int> DownTo(this int, int) 生成从作为this参数传递的值到更低值的序列并返回它。

参数:

  • from [this 参数] - 序列的最高数字
  • to - 序列的最低数字

备注:

  • 范围边界fromto 参与其中。
  • 如果to 高于from,则返回空序列。
IEnumerable<int> ToThis(this int) 生成从 0 开始向上/向下(取决于第二个值)到作为this参数传递的值的序列,并返回它。

参数:

  • to [this 参数] - 最后一个序列号

备注:

  • 范围边界 0 和to 参与其中。
IEnumerable<int> Stepped(this int, int) 生成从作为this参数传递的值开始的无穷序列,并使用指定的步长返回它。

参数:

  • from [this 参数] - 序列的第一个数字
  • step - 序列的步长

备注:

  • 最低边界from 参与其中。
bool Print() 输出bool类型的值。

参数:

  • item [this 参数] - 要打印的值
bool PrintLine() 输出bool类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
byte Print() 输出byte类型的值。

参数:

  • item [this 参数] - 要打印的值
byte PrintLine() 输出byte类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
sbyte Print() 输出sbyte类型的值。

参数:

  • item [this 参数] - 要打印的值
sbyte PrintLine() 输出sbyte类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
char Print() 输出char类型的值。

参数:

  • item [this 参数] - 要打印的值
char PrintLine() 输出char类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
decimal Print() 输出decimal类型的值。

参数:

  • item [this 参数] - 要打印的值
decimal PrintLine() 输出decimal类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
double Print() 输出double类型的值。

参数:

  • item [this 参数] - 要打印的值
double PrintLine() 输出double类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
float Print() 输出float类型的值。

参数:

  • item [this 参数] - 要打印的值
float PrintLine() 输出float类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
int Print() 输出int类型的值。

参数:

  • item [this 参数] - 要打印的值
int PrintLine() 输出int类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
uint Print() 输出uint类型的值。

参数:

  • item [this 参数] - 要打印的值
uint PrintLine() 输出uint类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
long Print() 输出long类型的值。

参数:

  • item [this 参数] - 要打印的值
long PrintLine() 输出long类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
ulong Print() 输出ulong类型的值。

参数:

  • item [this 参数] - 要打印的值
ulong PrintLine() 输出ulong类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
short Print() 输出short类型的值。

参数:

  • item [this 参数] - 要打印的值
short PrintLine() 输出short类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值
ushort Print() 输出ushort类型的值。

参数:

  • item [this 参数] - 要打印的值
ushort PrintLine() 输出ushort类型的值,并跳到新的一行。

参数:

  • item [this 参数] - 要打印的值

To, DownToToThis 用法示例

using NETSquirrel.Extensions;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            1.To(10).PrintLine(); // 1, 2, ..., 10
            10.DownTo(1).PrintLine(); // 10, 9, ..., 1
            10.ToThis().PrintLine(); // 0, 1, ..., 10
        }
    }
}
{$reference NETSquirrel.dll} 

begin
  1.To(10).PrintLine(); // 1, 2, ..., 10
  10.DownTo(1).PrintLine(); // 1, 2, ..., 10
  10.ToThis().PrintLine(); // 1, 2, ..., 10
end.

使用数组

[编辑 | 编辑源代码]

您可以通过NETSquirrel.Utils.ArrayUtils 类来读取所有基本类型的数组并对它们进行一些额外的有用操作。 让我们考虑提供的功能。

数组生成器

[编辑 | 编辑源代码]
方法
方法签名 简要描述
T[] GenerateArray<T>(int, Func<int, T>, int) 使用特定选择器生成指定长度的数组并返回它。

参数:

  • count - 数组的长度
  • selector - 将每个索引投影到某个值的委托实例
  • firstIndex - 索引偏移

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果selector 为 null,则抛出ArgumentNullException

备注:

  • 每个索引i 从 0..count 范围内映射到具体的第 i 个值。
T[] GenerateArray<T>(int, T, Func<T, T>) 使用特定选择器生成指定长度的数组并返回它。

参数:

  • count - 数组的长度
  • first - 数组的第一个值
  • selector - 从前一个值检索下一个值的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果next 为 null,则抛出ArgumentNullException
T[] GenerateArray<T>(int, Func<T[], int, T>) 使用特定选择器生成指定长度的数组并返回它。

参数:

  • count - 数组的长度
  • selector - 根据前一个值检索下一个值的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果selector 为 null,则抛出ArgumentNullException

备注:

  • 委托的数组(第一个)参数用于引用正在创建的数组。
  • 委托的索引(第二个)参数用于引用要设置的第 i 个值。
int[] CreateRandomIntArray(int, int, int) 创建随机填充的数组,其中值取自特定范围。

参数:

  • count - 数组的长度
  • low [可选参数],默认值 = 0 - 确定最低范围的边界
  • high [可选参数],默认值 = int.MaxValue - 确定最高范围的边界

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 low > high,则抛出 ArgumentOutOfRangeException
float[] CreateRandomFloatArray(int, float, float) 创建随机填充的数组,其中值取自特定范围。

参数:

  • count - 数组的长度
  • low [可选参数],默认值 = 0 - 确定最低范围的边界
  • high [可选参数],默认值 = float.MaxValue - 确定最高范围的边界

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 low > high,则抛出 ArgumentOutOfRangeException

GenerateArray 用法示例

using NETSquirrel.Extensions;
using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            ArraysUtils.GenerateArray(10, i => i).PrintLine(); // 0, 1, ..., 10
            ArraysUtils.GenerateArray(10, 0, x => x + 1).PrintLine(); // 0, 1, ..., 10
        }
    }
}
{$reference NETSquirrel.dll} 
uses NETSquirrel.Utils;

begin
  ArraysUtils.GenerateArray(10, i -> i).PrintLine(); // 0, 1, ..., 10
  ArraysUtils.GenerateArray(10, 0, x -> x + 1).PrintLine(); // 0, 1, ..., 10
end.

GenerateArray 用法示例 2

using NETSquirrel.Extensions;
using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            ArraysUtils.GenerateArray<int>(10, (array, i) => {
                switch (i)
                {
                    case 0:
                    case 1:
                        return 1;
                    default:
                        return array[i - 1] + array[i - 2];
                }
            }).PrintLine(); // 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
        }
    }
}
{$reference NETSquirrel.dll} 
uses NETSquirrel.Utils;
 
begin
  ArraysUtils.GenerateArray&<integer>(10, (a, i) -> begin
    case i of
      0, 1: Result := 1;
      else Result := a[i - 1] + a[i - 2];
    end;
  end).PrintLine(); // 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
end.

从键盘读取数组

[编辑 | 编辑源代码]
方法名称 简要描述
bool[] ReadBoolArray(int, string) 读取指定长度的 bool[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
bool[] ReadBoolArray(int, Func<int, string>) 读取指定长度的 bool[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
bool[] ReadBoolArray(int, ExceptionHandler, string) 读取指定长度的 bool[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
bool[] ReadBoolArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 bool[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
byte[] ReadByteArray(int, string) 读取指定长度的 byte[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
byte[] ReadByteArray(int, Func<int, string>) 读取指定长度的 byte[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
byte[] ReadByteArray(int, ExceptionHandler, string) 读取指定长度的 byte[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
byte[] ReadByteArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 byte[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
sbyte[] ReadSByteArray(int, string) 读取指定长度的 sbyte[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
sbyte[] ReadSByteArray(int, Func<int, string>) 读取指定长度的 sbyte[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
sbyte[] ReadSByteArray(int, ExceptionHandler, string) 读取指定长度的 sbyte[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
sbyte[] ReadSByteArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 sbyte[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
char[] ReadCharArray(int, string) 读取指定长度的 char[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
char[] ReadCharArray(int, Func<int, string>) 读取指定长度的 char[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
decimal[] ReadDecimalArray(int, string) 读取指定长度的 decimal[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
decimal[] ReadDecimalArray(int, Func<int, string>) 读取指定长度的 decimal[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
decimal[] ReadDecimalArray(int, ExceptionHandler, string) 读取指定长度的 decimal[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
decimal[] ReadDecimalArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 decimal[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
double[] ReadDooubleArray(int, string) 读取指定长度的 double[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
double[] ReadDooubleArray(int, Func<int, string>) 读取指定长度的 double[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
double[] ReadDooubleArray(int, ExceptionHandler, string) 读取指定长度的 double[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
double[] ReadDooubleArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 double[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
float[] ReadFloatArray(int, string) 读取指定长度的 float[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
float[] ReadFloatArray(int, Func<int, string>) 读取指定长度的 float[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
float[] ReadFloatArray(int, ExceptionHandler, string) 读取指定长度的 float[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
float[] ReadFloatArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 float[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
int[] ReadIntArray(int, string) 读取指定长度的 int[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
int[] ReadIntArray(int, Func<int, string>) 读取指定长度的 int[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
int[] ReadIntArray(int, ExceptionHandler, string) 读取指定长度的 int[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
int[] ReadIntArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 int[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
uint[] ReadUIntArray(int, string) 读取指定长度的 uint[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
uint[] ReadUIntArray(int, Func<int, string>) 读取指定长度的 uint[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
uint[] ReadUIntArray(int, ExceptionHandler, string) 读取指定长度的 uint[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
uint[] ReadUIntArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 uint[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
long[] ReadLongArray(int, string) 读取指定长度的 long[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
long[] ReadLongArray(int, Func<int, string>) 读取指定长度的 long[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
long[] ReadLongArray(int, ExceptionHandler, string) 读取指定长度的 long[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
long[] ReadLongArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 long[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
ulong[] ReadULongArray(int, string) 读取指定长度的 ulong[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
ulong[] ReadULongArray(int, Func<int, string>) 读取指定长度的 ulong[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
ulong[] ReadULongArray(int, ExceptionHandler, string) 读取指定长度的 ulong[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
ulong[] ReadULongArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 ulong[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
short[] ReadShortArray(int, string) 读取指定长度的 short[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
short[] ReadShortArray(int, Func<int, string>) 读取指定长度的 short[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
short[] ReadShortArray(int, ExceptionHandler, string) 读取指定长度的 short[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
short[] ReadShortArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 short[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
ushort[] ReadUShortArray(int, string) 读取指定长度的 ushort[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
ushort[] ReadUShortArray(int, Func<int, string>) 读取指定长度的 ushort[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
ushort[] ReadUShortArray(int, ExceptionHandler, string) 读取指定长度的 ushort[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
ushort[] ReadUShortArray(int, ExceptionHandler, Func<int, string>) 读取指定长度的 ushort[] 类型数组。

参数:

  • count - 数组的长度
  • handler - 异常的处理程序
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
  • 如果 handler 为 null,则不会处理发生的异常。
string[] ReadStringArray(int, string) 读取指定长度的 string[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat = "item {0}:" - 提示的格式

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。
string[] ReadStringArray(int, Func<int, string>) 读取指定长度的 string[] 类型数组。

参数:

  • count - 数组的长度
  • promptFormat - 指定每个数组项的提示格式的委托实例

异常:

  • 如果count < 0,则抛出ArgumentOutOfRangeException
  • 如果 promptFormat 为 null,则抛出 ArgumentNullException

备注:

  • promptFormat 参数用于读取每个数组项。

ReadBoolArray 用法示例

using NETSquirrel.Extensions;
using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            ArraysUtils.ReadBoolArray(10, "item {0} = ").PrintLine();
            ArraysUtils.ReadBoolArray(10, i => $"{new[] { "even", "odd" }[i % 2]} item = ").PrintLine();
        }
    }
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
 
begin
  ArraysUtils.ReadBoolArray(10, 'item {0} = ').PrintLine();
  var lambda: integer -> string := i -> string.Format('{0} item = ', (new string[] ('even', 'odd'))[i mod 2]);
  ArraysUtils.ReadBoolArray(10, lambda).PrintLine();
end.

ReadBoolArray 用法示例 2

using NETSquirrel.Extensions;
using NETSquirrel.Utils;

namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            ArraysUtils.ReadBoolArray(10, e => e.Message.PrintLine(), "item {0} = ").PrintLine();
            ArraysUtils.ReadBoolArray(10, e => e.Message.PrintLine(),
                i => $"{new[] { "even", "odd" }[i % 2]} item = ").PrintLine();
        }
    }
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
uses NETSquirrel;
 
begin
  ArraysUtils.ReadBoolArray(10, procedure(e) -> e.Message.PrintLine(), 'item {0} = ').PrintLine();
  ArraysUtils.ReadBoolArray(10, procedure(e) -> e.Message.PrintLine(),
    i -> string.Format('{0} item = ', (new string[] ('even', 'odd'))[i mod 2])).PrintLine();
end.

处理矩阵

[编辑 | 编辑源代码]

矩阵生成器

[编辑 | 编辑源代码]

从键盘读取矩阵

[编辑 | 编辑源代码]
华夏公益教科书