C # - Как сделать программы без IDE / Visual Studio?

1

Я делаю консольные приложения С# в Notepad++ и MonoDevelop только с.cs файлом вместо решения. Я компилирую код из CMD.

Я хочу добавить два класса в мою простую "взломанную" программу, которая просто отображает много 0 и 1. КАЖДЫЙ раз я пытаюсь сделать ссылку на объект, я получаю ошибку в компиляторе, говоря, что мне нужно сделать ссылку для нестатических полей. Создание методов статических работ, но я не думаю, что каждый метод должен быть статическим.

Итак, мой вопрос: как мне создавать ссылки на объекты без IDE?

EDIT: Я нашел решение, сделав переменную static. И я знал, что когда метод статичен, к нему можно получить доступ из любого класса без ссылки. Я просто тестировал ссылку на класс, чтобы узнать немного больше о С#. Но я делаю ссылочную переменную класса static, и все, что не является статичным в ссылочном классе, отлично работает. Спасибо всем за то, что помогли мне, хотя мои предложения и объяснения мне помогли.

  • 2
    Как насчет того, чтобы отредактировать свой вопрос с помощью написанного вами кода, это может помочь выяснить причину ошибки. Вам не нужно использовать IDE для написания C #
  • 0
    Хотя я думаю, что ответ @Cyral's Cyral - это путь, ваш главный вопрос можно найти здесь . В основном, для создания .exe - .exe вам просто нужно открыть командную строку и выполните команду: C: \ Windows \ Microsoft.NET \ Framework \ <версия> \ csc.exe file.cs Вы можете также найти другие параметры командной строки здесь .
Теги:
notepad++
monodevelop

2 ответа

8

Приятно видеть, что кто-то начинает так просто. Ссылки на объекты одинаковы независимо от того, работаете ли вы в VisualStudio или в простом текстовом редакторе.

На самом деле это ошибка в коде, а не тот факт, что вы не используете IDE.

Я предполагаю, что вы слишком долго не занимались объектно-ориентированным программированием и что это простые, одноклассные программы, которые помогут вам начать работу.

В этом случае все другие методы, поля и т.д. Доступны каким-то образом из вашего public static Main(string[] args) метода 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(). В этом случае он специфичен для каждого экземпляра "книги" и не должен быть static, поскольку он применяется к каждому экземпляру.

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

Не бойтесь использовать статические методы, они есть по какой-то причине.

Заметьте, я не профессиональный разработчик, поэтому некоторые термины, которые я использовал, могут быть не совсем точными, но я надеюсь, что это будет иметь смысл.

  • 0
    Хорошая мысль, я не думал о том, что это будет программа без отдельного набора классов, если он вызывает методы, написанные в классе в main, вы абсолютно правы.
-2
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() 
    {

    }
}

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню