Немного сложного вопроса, извиняюсь, если это что-то глупое, что я пропустил. Я пробовал много решений и решал их в некотором смысле, но теперь ссылочный номер в Customer не будет увеличиваться в CSV-файле?Номер ссылки не будет увеличиваться с завода? - Использование singleton Logger не может ссылаться Номер ссылки
Это начальный номер ссылки проводится для использования на заводе ...
abstract class ReferenceNo
{
static protected int _refNo;
static public int ReferenceNumber
{
get
{
return _refNo;
}
}
}
Это завод, который должен увеличиваем номер ссылки ...
class ReferenceNoFactory
{
static private int lastbookingrefno = 0; // Last used booking reference number.
static private int lastcustomerrefno = 0; // Last used customer reference number.
static public ReferenceNo FactoryMethod(string type)
{
if (type == "Booking")
{
lastbookingrefno++; // Create new booking reference number.
return new Booking(lastbookingrefno);
}
else if (type == "Customer")
{
lastcustomerrefno++; // Create a new customer reference number.
return new Customer(lastcustomerrefno);
}
else
return null; // Default, only a booking or customer reference number can be created.
// Nothing else should be returned, or null.
}
}
Это первая часть класса Customer, которая получает ссылочный номер и использует экземпляр регистратора, чтобы сохранить его в файле .csv ...
class Customer : ReferenceNo
{
static private string FirstName;
static private string LastName;
static private string Address;
public Customer(int refNo)
{
ReferenceNo._refNo = refNo;
}
static public void LogFile()
{
ReferenceNoFactory.FactoryMethod("Customer");
CustomerLogger firstlogger = CustomerLogger.Instance;
firstlogger.log(Customer.ReferenceNumber, Customer.firstname, Customer.lastname, Customer.address);
}
И это регистратор, который держит путь файл и т.д. ...
private static CustomerLogger instance;
private CustomerLogger() {}
public static CustomerLogger Instance
{
get
{
if (instance == null)
{
instance = new CustomerLogger();
}
return instance;
}
}
public void log(int custnum, string firstname, string lastname, string address)
{
System.IO.File.AppendAllText("F:\\Software Dev 2\\Coursework 2\\Mia-CourseWork2\\Customers.csv", "CustRefNum," + custnum + ",FirstName, " + firstname + ",LastName," + lastname + ",Address," + address + "\n");
}
Референс номер остается 1? ...
Понятно, что вы используете метод дважды, хотя он должен увеличиваться, только используя его один раз повторно? Это программа бронирования праздников, поэтому данные должны храниться в одном и том же файле .csv только с эталонным приращением ...? –
@ Mia.B Вы можете добавить пример использования в свой вопрос, чтобы я мог понять, что вы имеете в виду? – openshac
жаль, что это работает, оно увеличивается, если я создаю 2 клиента в одной и той же программе. Я думаю, мне просто нужна какая-то проверка для программы, чтобы узнать, находится ли ссылочный номер в файле, если это имеет смысл? –