C# – 如何在没有IDE / Visual Studio的情况下制作程序?

我在Notepad ++和MonoDevelop中使用.cs文件而不是解决方案制作C#控制台应用程序。 我从CMD编译代码。

我想在我简单的“黑客”程序中添加两个类,它只是简单地显示了很多0和1。 每次我尝试创建一个对象引用时,我在编译器中遇到错误,说我需要为非静态字段做一个引用。 使方法静态工作,但我不认为每个方法都应该是静态的。

所以我的问题是,如何在没有IDE的情况下进行对象引用?

编辑:我通过使变量静态找到了解决方案。 而且我知道当一个方法是静态的时,可以从没有引用的任何类访问它。 我只是测试一个类引用来学习更多关于C#的知识。 但是我将类引用变量设置为静态,并且引用类中任何非静态的都可以正常工作。 谢谢大家帮助我,因为你的建议和解释确实帮助了我。

很高兴看到有人开始如此简单。 无论您是在VisualStudio中工作,还是在简单的文本编辑器中,对象引用都是相同的。

这实际上是代码中的错误,而不是您没有使用IDE的事实。

我假设你没有过多地进入面向对象编程,而这些是简单的单一类程序来帮助你入门。

在这种情况下,从public static Main(string[] args)方法以某种方式访问​​所有其他方法,字段等。 可以从所有类访问静态方法,并且不需要对象实例。 没有实例访问的方法和字段必须是静态的。

所以,在这种情况下,是的,每个方法需要是静态的。

看看这个问题, 什么是“静态方法”?

例如,假设您创建了一个名为Math的类,并创建了一个Pow(int x, int power) (power)方法(这是.NET框架的一部分)。 您可以将此函数设置为static因为您希望所有类都能够访问它而无需创建Math类的实例。

 int square = Math.Pow(2, 2); //Static method, no instance needed 

现在说,你创建一个名为Book的类,这个类有像GetPagesLeft()这样的方法。 在这种情况下,它特定于“book”的每个实例,并且不应该是static ,因为它适用于每个实例。

 Book book = new Book(); //Create instance int pagesLeft = book.GetPagesLeft(); //Instance method 

不要害怕使用静态方法,它们是有原因的。

注意,我不是一个专业的开发人员,所以我使用的一些术语可能不完全正确,但我希望它能说明问题。

 namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // instanceMethod(); // Error calling instance method without an instance. // Won't even compile Program prg = new Program(); prg.instanceMethod(); // No Error calling instance method from instance staticMethod(); // No Error calling static method without an instance } void instanceMethod() { } static void staticMethod() { } } 

}