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

MrS*_*ank 1 c c# notepad++ monodevelop

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

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

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

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

Cyr*_*ral 8

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

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

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

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

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

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

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

int square = Math.Pow(2, 2); //Static method, no instance needed
Run Code Online (Sandbox Code Playgroud)

现在说,你做一个叫做的类Book,这个类有方法如GetPagesLeft().在这种情况下,它特定于"book"的每个实例,而不应该是static,因为它适用于每个实例.

Book book = new Book(); //Create instance
int pagesLeft = book.GetPagesLeft(); //Instance method
Run Code Online (Sandbox Code Playgroud)

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

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