Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 101
1

Передача объектов методам

18.04.2019, 11:46. Показов 730. Ответов 4

Author24 — интернет-сервис помощи студентам
Дан код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class Cards
    {
        public string Title; //Название карты
        public double Cost; //Стоимость карты
        public Cards() //конструктор
        {
            Cost = 1500;
        }
        public int Validity; //Срок действия карты
        public int a;
        public Double Skidka() //Метод с параметром для скидки на абонемент
        {
            return Cost - (Cost / 100 * a);
        }
        public Double Summa() //Метод с параметром для суммы со скидкой
        {
            return Validity * (Cost - (Cost / 100 * a));
        }
 
static void Main(string[] args)
        {
 
            Cards1();
            
        }
public static void Cards1()
        {
            Console.WriteLine("Введите тип абонемента:");
            Cards data = new Cards();
            Console.Write("Название: ");
            data.Title = Console.ReadLine();
            Console.Write("Срок действия в месяцах: ");
            data.Validity = Convert.ToInt32(Console.ReadLine());
            if (data.Validity < 2) data.a = 0;
            else
                if ((data.Validity >= 2) & (data.Validity < 5)) data.a = 5;
            else
                if ((data.Validity >= 5) & (data.Validity < 12)) data.a = 10;
            else
                if (data.Validity >= 12) data.a = 15;
            Random ran = new Random();
            int value = ran.Next(00001, 99999);
            Console.Clear();
 
            Console.WriteLine("Формат абонемента");
            Console.WriteLine("Название: " + data.Title);
            Console.WriteLine("Номер карты: " + value);
            Console.WriteLine("Базовая стоимость абонемента на 1 месяц = 1500 рублей");
            Console.WriteLine("Стоимость со скидкой абонемента на 1 месяц = {0} рублей", data.Skidka());
            Console.WriteLine("Сумма за {0} месяцев = {1} рублей", data.Validity, data.Summa());
            Console.WriteLine("Скидка: {0}%", data.a);
            Console.WriteLine("Срок действия: {0} мес.", data.Validity);
            Console.ReadKey();
        }
В него необходимо добавить "передача объектов методу". Заменив/добавив/удалив какие либо переменные, главное, что бы суть осталась прежней. Я всё перечитал и вообще не понимаю как это сюда впихнуть, что бы оно тут было уместно и работало.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2019, 11:46
Ответы с готовыми решениями:

передача объектов методам C#
Всем доброго времени суток! Только-только начал учить C#. Возникла следующая проблема: имеется структура, одним из членов которой является...

Передача объектов методам по ссылке
Здравствуйте! Читаю Шилдта C# и дошел до главы Передача объектов методам по ссылке. Прошу объяснить по-проще, что, откуда и зачем. ...

Передача объектов методам по ссылке
Здравствуйте. не могу разобраться с этим примером из книги Шилдта.using System; class MyClass { int alpha, beta; public...

4
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15942 / 11081 / 2861
Регистрация: 21.04.2018
Сообщений: 32,521
Записей в блоге: 2
18.04.2019, 12:17 2
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
В него необходимо добавить "передача объектов методу". Заменив/добавив/удалив какие либо переменные, главное, что бы суть осталась прежней.
Вы сначала себе просто логически представьте, что такое, допустим, удалить объект?
Как минимум это означает, что удалить откуда-то?
У Вас создаётся только один объект data типа Cards. Он существует сам по себе и значит удалить его откуда-то невозможно, так не существует этого "откуда-то"

Основываясь даже просто на названии Cards - у Вас неверная реализация задачи в целом.

Cards - это, в переводе, карты. Но у Вас же в этом типе хранится информация только об одной карте!

Поэтому переименуйте, этот тип в Card.

Для хранения списка карт определите другой класс Cards (или лучше CardList) и в нём уже определите методы для создания списка карт, его возврата, добавления/удаления карты и т.д. И реализация этих методов потребует передачи в параметрах или возврата объекта типа Card.
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 101
24.04.2019, 07:40  [ТС] 3
Вы немного не в ту сторону начали анализировать мою проблему. Название класса Cards стоит во множественном числе, так как в дальнейшем все эти данные будут отправляться в БД, где их уже будет много. Но на данном этапе она одна максимум.
Удаление считается в том смысле, что не удалить что-то от куда-то просто за тем что лишнее, а имеется ввиду, что для решение поставленной задачи можно пользоваться любыми методами. Вдруг что необходимо изменить, или, возможно аже удалить
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
24.04.2019, 11:32 4
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
Вы немного не в ту сторону начали анализировать мою проблему.
В ту.
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
Название класса Cards стоит во множественном числе, так как в дальнейшем все эти данные будут отправляться в БД, где их уже будет много.
Что есть бред, ибо в экземпляре хранится информация только об одном абонементе. И совершенно не важно, сколько экземпляров будет создано и куда они будут отправляться. Так что лучше назовите класс Card.
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
что бы оно тут было уместно и работало.
Чтоб было уместно и работало нужна коллекция объектов из которой объект можно удалить, в которой объект можно отредактировать.
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
что для решение поставленной задачи можно пользоваться любыми методами
В чем заключается поставленная задача?

Добавлено через 7 минут
В любом случае, если предполагается, что экземпляров будет много, нужен класс, содержащий коллекцию. Там уже будут уместны методы добавления, изменения, удаления.
Например:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Cards
{
    List<Card> cards = new List<Card>();
    public void AddCard(Card card)
    {
        cards.Add(card);
    }
    public void ChangeCardAt(int index, Card newCard)
    {
        if (index < 0 || index >= cards.Count) return;
        cards[index] = newCard;
    }
    public void RemoveCard(Card card)
    {
        cards.Remove(card);
    }
}
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15942 / 11081 / 2861
Регистрация: 21.04.2018
Сообщений: 32,521
Записей в блоге: 2
24.04.2019, 12:28 5
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
Вы немного не в ту сторону начали анализировать мою проблему
........
все эти данные будут отправляться в БД, где их уже будет много.
На большую часть ответил Даценд.

Я касаемо БД.
Если Вам надо удалять запись из БД, то нужна структура этой БД и код как Вы в неё вносите новые записи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2019, 12:28
Помогаю со студенческими работами здесь

Remoting, удаленный вызов Events: Нет доступа к свойствам и методам объектов
При использовании (.NET Remoting) Singleton-объектов (которые совместно используют данные), доступ к свойствам и методам объектов у меня...

Передача объектов методам (пример Г.Шилдт)
В книге Шилдта для начинающих есть пример class Block { int a, b, c; int volume; Block (int i, int j, int k) { //...

Где и как создать массив объектов, чтобы можно было получить доступ к методам этих объектов?
Задача: &quot;в win form кликаю на кнопку (button) и в этот момент в одном из массивов экземпляров класса должен вызваться метод&quot; ...

Обращение к методам объектов, созданных в разных потоках
Гуд дэй, комрэйдс! Ай хэв э квэштн фор ю! В общем, у меня есть распоточенное приложение на C# WinForms, вкратце: классецы ...

Как создать список объектов класса и обращаться к их методам?
Для решения одной задачи мне нужно создать список объектов класса, но я не знаю, как это правильно делается, и как потом обращаться к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru