Ну очень глупый вопрос наверное :(
Распихал логику по методам, мне удобнее когда каждая функция свое выполняет.
И приходится постоянно делать так
myclass.doing1(new myclass().doing2(new myclass().doing3()))
this так не работает, без создания экземпляра класса они тоже не работают. Как в шарпе это делают?
Почерпнул новой инфы, большое спасибо!
Если вам надо, чтобы функции работали без создания экземпляра, сделайте их статическими. Пример:
public static class Mathf {
public static float Sqrt (float x) {...}
public static float Sin (float x) {...}
public static float Cos (float x) {...}
}
И вызывайте через точку после имени класса: x = Mathf.Sqrt (Mathf.Cos (x));
А если используете using static
в начале файла, то и имя класса будет необязательным.
Теперь немного поясню про экземпляры и this
. ООП придумали, грубо говоря, чтобы упростить работу с наборами данных при помощи наборов функций, объединили данные и функции в одно целое и назвали класс.
Когда вы создаете экземпляр класса, вы создаете набор переменных, которые в нем есть, только в ООП они называются полями. Конструктор инициализирует их согласно логике класса. Поэтому, если вам не нужно работать с полями, то можно избежать работы с ними в конструкторе, если метод будет статическим.
Внутри нестатических методов вы можете использовать слово this
. Это ссылка на экземпляр, у которого вызвали метод. Если вы пишете myClass.f1()
то метод f1
может обращаться к нестатическим полям и методам экземпляра myClass
: this.f2()
или просто f2()
.
Статические методы вызываются без экземпляра, поэтому там вы не сможете использовать this
, хоть явно, хоть неявно.
MyClass myclass = new MyClass();
myclass.doing1( myclass.doing2( myclass.doing3() ) );
или
public class MyClass
{
...
public void DoIt() {
doing1( doing2( doing3() ) );
}
}
MyClass myclass = new MyClass();
myclass.DoIt();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, пожалуйста, как в ASPNET CORE MVC сделать так, чтобы по вводу нужного числа в текстовом поле во view, появлялось количество элементов (текстовых...
Подскажите, пожалуйста, где я не правЯ создал класс Bill, в котором есть ряд полей
Пытаюсь написать бота,который накладывает текст,отправленный пользователем, на картинку(картинка одна и та же)Найти способ нормально загружать...
Не могу придумать как перед GROUP_CONCAT и DISTINCT отсортировать по ordering