C# Nemerle中的输入

C# Nemerle中的输入,c#,nemerle,C#,Nemerle,我想知道如何从表单控制台获取输入: 内默尔14 65 99。在C#中,我这样做是通过: string[] input = System.Console.ReadLine().Split(' '); ch = System.Char.Parse(input[0]); a = System.Int32.Parse(input[1]); d = System.Int32.Parse(input[2]);

我想知道如何从表单控制台获取输入:

内默尔14 65 99。在C#中,我这样做是通过:

            string[] input = System.Console.ReadLine().Split(' ');
            ch = System.Char.Parse(input[0]);
            a  = System.Int32.Parse(input[1]);
            d =  System.Int32.Parse(input[2]);
            m =  System.Int32.Parse(input[3]);

但这在内默尔不起作用。请建议我如何在Nemerle中执行此操作。

您也可以使用IO宏:

class Test
{
  public static Main () : void
  {
    def input = System.Console.ReadLine ().Split (' ');
    def ch = System.Char.Parse (input[0]);
    def a  = System.Int32.Parse (input[1]);
    def d =  System.Int32.Parse (input[2]);
    def m =  System.Int32.Parse (input[3]);

    System.Console.WriteLine ("ch:{0} a:{1} d:{2} m:{3}",  ch, a, d, m);
  }
}
using Nemerle.IO;
using System;

mutable ch, a, d, m;
try
{
    scanf("%c %d %d %d", ch, a, d, m);
    printf("%c %d %d %d\n", ch, a, d, m);
}
catch
{
    | _ is InvalidInput => Console.WriteLine("Invalid input")
}

注意,与C++不同,Nemerle版本的Prtf和Sncf是安全的。只有传递正确类型的参数,它们才会编译。在上面的示例中,甚至可以从用法推断出正确的类型。

您也可以使用IO宏:

using Nemerle.IO;
using System;

mutable ch, a, d, m;
try
{
    scanf("%c %d %d %d", ch, a, d, m);
    printf("%c %d %d %d\n", ch, a, d, m);
}
catch
{
    | _ is InvalidInput => Console.WriteLine("Invalid input")
}

注意,与C++不同,Nemerle版本的Prtf和Sncf是安全的。只有传递正确类型的参数,它们才会编译。在上面的示例中,甚至可以从用法推断出正确的类型