Witam
Tak jak w pytaniu. Jak odwołać się do objektu tworzonego w innym objecie?
Piszę prosty program TODOList. Mam w nim klasę TodoListElement odpowiadającą za tworzenie i edycję elementów listy, oraz klasę TodoListNavigation, która wyświetla proste menu, elementy listy, ich status i pozwala na ich edycję (poprzez klasę TodoListElement).
Klasa Program:
using System;
using System.Collections.Generic;
namespace TODOList
{
internal class Program
{
private static void Main()
{
var navigationTodoList = new NavigationTodoList();
navigationTodoList.ShowNavigationBar();
navigationTodoList.CreateNewElement(new TodoListElement(), "It works, I hope");
navigationTodoList.EditElementStatus(/*jak odwołać się do objektu stworzonego przez objekt navigationTodoList (ten wyżej)*/);
navigationTodoList.ShowTodoElementList();
}
}
}
Klasa TodoListElement:
using System;
namespace TODOList
{
public class TodoListElement
{
private string _todoListElementValue;
private bool _todoListElementStatus;
public TodoListElement()
{
_todoListElementValue = "Move this fat ass (づ>‿‿<)づ";
_todoListElementStatus = true;
}
public void ShowTodoListElementStatus()
{
Console.WriteLine("TodoListElementStatus: " + _todoListElementStatus);
}
public void ShowTodoListElementValue()
{
Console.WriteLine("TodoListElementValue: " + _todoListElementValue);
}
public void ShowTodoListElement()
{
var status = _todoListElementStatus ? "(during)" : "(finished)";
Console.WriteLine(_todoListElementValue + " " + status);
}
public void SetTodoListElement(string todoListElementValue)
{
_todoListElementValue = todoListElementValue;
}
public void ChangeToDoListElementStatus()
{
_todoListElementStatus = !_todoListElementStatus;
}
}
}
Klasa TodoListNavigation:
using System;
using System.Collections.Generic;
namespace TODOList
{
public class NavigationTodoList
{
private List<TodoListElement> _todoListElementList = new List<TodoListElement>();
public void ShowNavigationBar()
{
Console.WriteLine("--------------------TODO--------------------");
Console.WriteLine("1.New 2.Edit 3.Change status 4.Delete 5.Exit\n");
}
public void ShowTodoElementList()
{
foreach (var element in _todoListElementList)
{
element?.ShowTodoListElement();
}
}
public void CreateNewElement(TodoListElement todoListElement, string todoListElementValue)
{
_todoListElementList.Add(todoListElement);
todoListElement.SetTodoListElement(todoListElementValue);
}
public void EditElement(TodoListElement todoListElement, string todoListElementValue)
{
todoListElement.SetTodoListElement(todoListElementValue);
}
public void EditElementStatus(TodoListElement todoListElement)
{
todoListElement.ChangeToDoListElementStatus();
}
public void DeleteElement(TodoListElement todoListElement)
{
_todoListElementList.Remove(todoListElement);
todoListElement = null;
}
public void ExitProgram()
{
Environment.Exit(0);
}
}
}
Jeżeli coś jest niezrozumiałe proszę pisać