在Ada中使用.net命令

在Ada中使用.net命令,.net,ada,gnat,.net,Ada,Gnat,我知道,这是一个很难回答的问题,但是。。。。。我不知道:( 我正在使用dotnet gnat,我在Ada中使用platform.Net的命令时遇到问题…我可以使用WriteLine,但不能使用ReadLine命令。。。。 如何知道使用某些命令的正确方法 我的代码: with Ada.Text_IO, MSSyst.Console; use Ada.Text_IO, MSSyst.Console; procedure ada_net is begin Put("Ola mundo");

我知道,这是一个很难回答的问题,但是。。。。。我不知道:(

我正在使用dotnet gnat,我在Ada中使用platform.Net的命令时遇到问题…我可以使用WriteLine,但不能使用ReadLine命令。。。。 如何知道使用某些命令的正确方法

我的代码:

with Ada.Text_IO, MSSyst.Console;
use  Ada.Text_IO, MSSyst.Console;

procedure ada_net is
begin
    Put("Ola mundo");
    New_line;
    WriteLine("Ola mundo");
    --ReadLine;
end ada_net;
可读代码:

function ReadLine  return access MSSyst.String.Typ'Class;
pragma Export (CIL, ReadLine, "ReadLine");

谢谢。

我没有使用过.Net,但我可以马上告诉您,由于ReadLine是一个函数,因此需要将其作为一个函数调用。您需要一个与ReadLine的返回类型兼容的变量,并将调用ReadLine的结果分配给它。是否混淆了导入和导出?
with
MSSyst.String,
MSSyst.Console,
Ada.Text_IO;

procedure Test is
begin
   Ada.Text_IO.Put_Line( "Dotnet test." );
   Ada.Text_IO.Put( "Enter a line: " );
   declare
      Line : access MSSyst.String.Typ'Class renames MSSyst.Console.ReadLine; --'

      use MSSyst.String;
      Function "&"( Left, Right : access Typ'Class ) return access Typ'Class renames Concat;
      Function "&"( Left : String; Right : access Typ'Class ) return access Typ'Class is
        ( (+Left) & Right );
   begin      
      MSSyst.Console.WriteLine( ("You entered: """ & Line) & (+(1=> '"')));
   end;
end Test;