Ниже у меня есть этот код, над которым я работаю, а не задание, его включение в ассоциацию. В основном у меня есть C2.buyPhoneApple (P1); это вызывает метод в моем классе Customer. Вернемся к моему списку, у меня есть список, этот список состоит из элементов, добавленных в класс телефона, моя проблема в том, что я использовал P1 для проверки вызова, он работает, но теперь мне нужен вызов метода, чтобы отразить элемент внутри список и взять 1 из запасов сразу после размещения заказа. Я попытался объяснить это как можно лучше.Помощь с вызовом метода ассоциирования
В дополнение к этому, я использую переменную, называемую моделью для хранения выбора пользователей из повторного списка (0, 1, 2). Я использую эту переменную, чтобы подтвердить выбор пользователей, индексируя библиотеку applePhones, извините длинное объяснение ,
P.S. У меня есть больше кода, но он не чувствовал необходимости публиковать все классы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OOP_Phone_Shop_Test
{
class Program
{
static int thanksApple(ref int thankYou)
{
Random text = new Random();
thankYou = text.Next(1, 4);
switch (thankYou)
{
case 1:
Console.WriteLine("\nThank you for choosing Apple!\n");
break;
case 2:
Console.WriteLine("\nCongratualation on purchasing your Apple product!\n");
break;
case 3:
Console.WriteLine("\nWelcome to Apple, you shall receieve your account information and billing through the mail.\n");
break;
case 4:
Console.WriteLine("\nCell-Sale, number 1 for Apple products and services!\n");
break;
}
return thankYou;
}
static void menu()
{
}
static void Main(string[] args)
{
menu();
int model = 0;
bool menuRepeat = true;
string confirm = "";
int choice = 0;
do
{
AppleLibrary appleLib = new AppleLibrary();
SamsungLibrary samsungLib = new SamsungLibrary();
Customer C1 = new Customer("Poseidon", 500, 309487, "The Sea, Greece"); //Instantiation with predefined values due to predefined constructor.
Customer C2 = new Customer("Zeus", 601, 345928, "Olympus, Greece");
Windows W1 = new Windows();
W1.brand = "Windows";
W1.model = "Nokia Lumia";
W1.stock = 5;
Samsung Sam2 = new Samsung();
Sam2.brand = "Samsung, Andriod";
Sam2.Model = "Samsung Galaxy note 3";
Sam2.stock = 5;
Sam2.price = 300;
Apple P1 = new Apple();
P1.brand = "Apple";
P1.model = "iPhone 5";
P1.stock = 5;
P1.price = 350;
appleLib.ApplePhones.Add(new Phone("Apple", "iPhone 5", 350, 1));//Adding to the library object with initialization (Predefined constructor)
appleLib.ApplePhones.Add(new Phone("Apple", "iPhone 4s", 250, 1));
appleLib.ApplePhones.Add(new Phone("Apple", "iPhone 3", 150, 0));
samsungLib.samsungPhones.Add(new Phone("Samsung", "Galaxy Note 1", 100, 7));
samsungLib.samsungPhones.Add(new Phone("Samsung", "Galaxy Note 2", 150, 2));
samsungLib.samsungPhones.Add(new Phone("Samsung", "Galaxy Note 3", 350, 4));
Console.BackgroundColor = ConsoleColor.DarkGreen;
/*
for (int j = 0; j < windowsPhoneArray.Length; j++)
{
Console.WriteLine("{0}", windowsPhoneArray[j].model);
}
* */
Console.WriteLine("\nCustomer name: {0}\nCustomer balance: {1}\n", C1.name, C1.balance);
Console.WriteLine("\n1)Apple\n\n2)Samsung\n\n3)Windows\n");
Console.Write("Please select a brand: ");
try
{
choice = Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.WriteLine("\n\n***Please enter a number***\n\n");
}
if (choice == 1)
{
Console.WriteLine("\nPlease Select a model");
for (int i = 0; i < appleLib.ApplePhones.Count(); i++)
{
Console.BackgroundColor = ConsoleColor.DarkMagenta;
Console.Write("\nSelection {0}) = Model: {1}\nPrice: {2}\nStock: {3}\n", i, appleLib.ApplePhones[i].model, appleLib.ApplePhones[i].price, appleLib.ApplePhones[i].stock);
}
Console.Write("\nPlease select your model: ");
try
{
model = Convert.ToInt32(Console.ReadLine()); //This variable to show/confirm the users list<phone> selection.
}
catch (FormatException)
{
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.WriteLine("\nPlease enter a number\n");
}
Console.WriteLine("\nYou have selected: {0}\nPrice: {1}", appleLib.ApplePhones[model].Brand, appleLib.ApplePhones[model].price);
Console.BackgroundColor = ConsoleColor.Blue;
Console.Write("\nConfirm purchase Y/N: ");
confirm = Console.ReadLine();
if (confirm == "y" || confirm == "Y")
{
menuRepeat = false;
C2.BuyPhoneApple(P1);// I want this call to reflect the chosen element within the list<phone> and call buyPhoneApple and remove a phone from the stock according to the users selection.
}
else
{
Console.WriteLine("Returning to the main menu...standby");
}
}
if (choice == 2)
{
for (int x = 0; x < samsungLib.samsungPhones.Count(); x++)
{
Console.Write("\nSelection {0}) = Model: {1}\nStock: {2}\n", x, samsungLib.samsungPhones[x].model, samsungLib.samsungPhones[x].stock);
}
Console.Write("\nPlease select your model: ");
try
{
model = Convert.ToInt32(Console.ReadLine());
}
catch (FormatException)
{
Console.BackgroundColor = ConsoleColor.DarkGray;
Console.WriteLine("\nPlease enter a number\n");
}
Console.WriteLine("\nYou have selected: {0}\nPrice: {1}", samsungLib.samsungPhones[model].brand, samsungLib.samsungPhones[model].price);
Console.Write("\nConfirm purchase Y/N: ");
confirm = Console.ReadLine();
if (confirm == "y" || confirm == "Y")
{
menuRepeat = false;
C2.BuyPhoneApple(P1);
}
}
} while (menuRepeat == true);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OOP_Phone_Shop_Test
{
class Apple : Phone
{
public Apple(string newBrand, string newModel, int newPrice, int newStock)
: base(newBrand, newModel, newPrice, newStock)
{
}
public Apple()
{
}
static int thanksApple(ref int thankYou)
{
Random text = new Random();
thankYou = text.Next(1, 4);
switch (thankYou)
{
case 1:
Console.WriteLine("\nThank you for choosing Apple!\n");
break;
case 2:
Console.WriteLine("\nCongratualation on purchasing your Apple product!\n");
break;
case 3:
Console.WriteLine("\nWelcome to Apple, you shall receieve your account information and billing through the mail.\n");
break;
case 4:
Console.WriteLine("\nCell-Sale, number 1 for Apple products and services!\n");
break;
}
return thankYou;
}
public override void OrderPhoneApple(Customer objCustomer)
{
int thankyouApple = 0;
stock--;
Console.WriteLine("\n\nSold!\n\nName: {0}\nAccount Number: {1}\nAddress: {2}", objCustomer.name, objCustomer.AccountNumber, objCustomer.Address);
thanksApple(ref thankyouApple);
}
public override void AddStock()
{
stock++;
Console.WriteLine("Single stock added!");
}
public override void AddMassStock(int MassStock)
{
stock = stock + MassStock;
Console.WriteLine("stock added!");
}
public override void RemoveStock()
{
stock--;
Console.WriteLine("Single stock removed!");
}
public override void RemoveMassStock(int RemoveMassStock)
{
stock = stock - RemoveMassStock;
Console.WriteLine("stock removed!");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OOP_Phone_Shop_Test
{
class Customer
{
public string name;
public double balance;
public double accountNumber;
public string address;
public Customer(string newName, double newBalance, double newAccountNumber, string newAddress)
{
name = newName;
balance = newBalance;
accountNumber = newAccountNumber;
address = newAddress;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public double Balance
{
get
{
return balance;
}
set
{
balance = value;
}
}
public double AccountNumber
{
get
{
return accountNumber;
}
set
{
accountNumber = value;
}
}
public string Address
{
get
{
return address;
}
set
{
address = value;
}
}
public void BuyPhoneApple(Apple objApplePhone)
{
if (balance >= objApplePhone.price)
{
objApplePhone.OrderPhoneApple(this);
}
else
{
Console.WriteLine("Not enouogh funds");
}
}
public void BuyPhoneSamsung(Samsung objSamsungPhone)
{
if (balance >= objSamsungPhone.price)
{
objSamsungPhone.OrderPhoneSamsung(this);
}
else
{
Console.WriteLine("Not enough funds");
}
}
}
}
Вы можете как-то разрушить свою проблему, а не размещать весь код, который не имеет отношения к делу? – user1767754
У меня есть класс под названием AppleLibrary, который представляет собой список, который состоит из объектов класса телефона, в основном у меня есть C1 и C2, которые являются объектами Customer с предопределенными значениями конструктора. buyPhoneApple - это метод в классе Customer, передает объект этого класса в apple, у которого есть метод, который когда-то вызывал, удаляет одну из этих акций; Мне нужно как-то поместить элемент списка, который пользователь выбирает в ассоциированном вызове C2.buyapplePhone (выбран элемент списка); поэтому он будет продолжать принимать один из запаса в пределах значения конструктора. –