Я делаю консольные приложения С# в Notepad++ и MonoDevelop только с.cs файлом вместо решения. Я компилирую код из CMD.
Я хочу добавить два класса в мою простую "взломанную" программу, которая просто отображает много 0 и 1. КАЖДЫЙ раз я пытаюсь сделать ссылку на объект, я получаю ошибку в компиляторе, говоря, что мне нужно сделать ссылку для нестатических полей. Создание методов статических работ, но я не думаю, что каждый метод должен быть статическим.
Итак, мой вопрос: как мне создавать ссылки на объекты без IDE?
EDIT: Я нашел решение, сделав переменную static. И я знал, что когда метод статичен, к нему можно получить доступ из любого класса без ссылки. Я просто тестировал ссылку на класс, чтобы узнать немного больше о С#. Но я делаю ссылочную переменную класса static, и все, что не является статичным в ссылочном классе, отлично работает. Спасибо всем за то, что помогли мне, хотя мои предложения и объяснения мне помогли.
Приятно видеть, что кто-то начинает так просто. Ссылки на объекты одинаковы независимо от того, работаете ли вы в 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
Не бойтесь использовать статические методы, они есть по какой-то причине.
Заметьте, я не профессиональный разработчик, поэтому некоторые термины, которые я использовал, могут быть не совсем точными, но я надеюсь, что это будет иметь смысл.
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()
{
}
}
}
.exe
-.exe
вам просто нужно открыть командную строку и выполните команду: C: \ Windows \ Microsoft.NET \ Framework \ <версия> \ csc.exe file.cs Вы можете также найти другие параметры командной строки здесь .