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

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

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

Студворк — интернет-сервис помощи студентам
Дан код
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
 Аватар для Элд Хасп
16139 / 11263 / 2888
Регистрация: 21.04.2018
Сообщений: 33,108
Записей в блоге: 2
18.04.2019, 12:17
Цитата Сообщение от _Rom-an_ Посмотреть сообщение
В него необходимо добавить "передача объектов методу". Заменив/добавив/удалив какие либо переменные, главное, что бы суть осталась прежней.
Вы сначала себе просто логически представьте, что такое, допустим, удалить объект?
Как минимум это означает, что удалить откуда-то?
У Вас создаётся только один объект data типа Cards. Он существует сам по себе и значит удалить его откуда-то невозможно, так не существует этого "откуда-то"

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

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

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

Для хранения списка карт определите другой класс Cards (или лучше CardList) и в нём уже определите методы для создания списка карт, его возврата, добавления/удаления карты и т.д. И реализация этих методов потребует передачи в параметрах или возврата объекта типа Card.
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 101
24.04.2019, 07:40  [ТС]
Вы немного не в ту сторону начали анализировать мою проблему. Название класса Cards стоит во множественном числе, так как в дальнейшем все эти данные будут отправляться в БД, где их уже будет много. Но на данном этапе она одна максимум.
Удаление считается в том смысле, что не удалить что-то от куда-то просто за тем что лишнее, а имеется ввиду, что для решение поставленной задачи можно пользоваться любыми методами. Вдруг что необходимо изменить, или, возможно аже удалить
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
24.04.2019, 11:32
Цитата Сообщение от _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
 Аватар для Элд Хасп
16139 / 11263 / 2888
Регистрация: 21.04.2018
Сообщений: 33,108
Записей в блоге: 2
24.04.2019, 12:28
Цитата Сообщение от _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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru