Java acm.program就像Clone for C#

时间:2016-11-11 10:36:02

标签: java c# winforms swing

任何人都可以在C#中引导我关于像libs这样的acm.program,这样就像在Java下面一样: (来自https://cs.stanford.edu/people/eroberts/jtf/tutorial/Introduction.html

import acm.program.*;

        public class Add2Console extends ConsoleProgram {

           public void run() {
              println("This program adds two numbers.");
              int n1 = readInt("Enter n1: ");
              int n2 = readInt("Enter n2: ");
              int total = n1 + n2;
              println("The total is " + total + ".");
           }


    }

使用基于Gui的伪控制台中的输出:

enter image description here

我们可以在C#中使用类似的编码吗?

但我认为因为C#与Windows API密切相关,所以只有独立于平台的GUI才能实现它。请解释......

1 个答案:

答案 0 :(得分:0)

不完全确定你想要什么。对于您提供的示例,您可以像这样使用System.Console:

using System;

namespace Test {
    internal class Program {

        private static void Main(string[] args) {
            Console.WriteLine("This program adds two numbers.");
            var n1 = ReadInt("Enter n1: ");
            var n2 = ReadInt("Enter n2: ");
            var total = n1 + n2;
            Console.WriteLine("The total is {0}.", total);
            Console.Read(); //Just to keep the console window from closing. Press a key to exit.
        }

        private static int ReadInt(string message) {
            Console.Write(message);
            var sInt = Console.ReadLine();
            int ret;
            if (int.TryParse(sInt, out ret)) {
                return ret;
            }
            throw new Exception("You must enter a valid number!");
        }
    }
}

对于gui部分,c#不依赖于windows api。 c#可以在linux上使用mono。链接的gui部分的一个简单示例可能是:

using System;
using System.Windows.Forms;

namespace Test {
    internal class Program {

        private static void Main(string[] args) {
            MessageBox.Show("This program adds two integers.");

            var n1 = ReadInt("Enter n1: ");
            var n2 = ReadInt("Enter n2: ");
            var total = n1 + n2;
            MessageBox.Show(string.Format("The total is {0}.", total));
        }

        private static int ReadInt(string message) {
            var sInt = Microsoft.VisualBasic.Interaction.InputBox(message);
            int ret;
            if (int.TryParse(sInt, out ret)) {
                return ret;
            }
            throw new Exception("You must enter a valid number!");
        }
    }
}

要使最后一部分工作,你需要添加一个对Microsoft.VisualBasic的引用,因为在c#中没有InputBox,你很容易自己创建一个但是为了保持代码简单,我跳过了。

当然,如果你想编程gui,可以在这里做很多改进,但这只是为了表明链接上的代码是由c#支持的。

如果你编译这些例子,他们应该在mono和

的帮助下在linux和mac上运行

如果这不是您想要的,请尝试使用更多信息扩展问题。