任何人都可以在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的伪控制台中的输出:
我们可以在C#中使用类似的编码吗?
但我认为因为C#与Windows API密切相关,所以只有独立于平台的GUI才能实现它。请解释......
答案 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上运行如果这不是您想要的,请尝试使用更多信息扩展问题。