//Есть структура Diary,для примера есть один метод ShowData,который выводит данные,но как быть если структур несколько,как мне обращаться к другим структурам объектам myList,мне говорили,что можно обращаться из одной структуры в другую,ноя не могу это понять,буду признателен если кто нибудь мне это объяснит.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp7
{
//структура Diary
public struct Diary
{
//создание номера
public int Number { get; set; }
//создание Имя
public string Name { get; set; }
//создание Даты и Время
public DateTime ParsedDate { get; set; }
//создание Место
public string Place { get; set; }
//создание Действие
public string Action { get; set; }
//метод вывода данных
public List<Diary> ShowData(List<Diary> myList)
{
foreach (Diary d in myList)
{
Console.WriteLine("-----------------------------------------");
Console.WriteLine("{0} - {1} - {2} - {3} - {4}", d.Number, d.Name, d.ParsedDate, d.Place, d.Action);
Console.WriteLine("-----------------------------------------");
}
return myList;
}
class Program
{
static void Main(string[] args)
{
// создание объекта
List<Diary> myList = new List<Diary>();
Console.WriteLine("-- Введите пробную первую запись для активации блокнота --");
Console.WriteLine("Введите Номер");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите Имя");
string m = Console.ReadLine();
Console.WriteLine("Введите Дату и Время");
DateTime l = Convert.ToDateTime(Console.ReadLine());
Console.WriteLine("Введите Место");
string p = Console.ReadLine();
Console.WriteLine("Введите Действие");
string f = Console.ReadLine();
myList.Add(new Diary() { Number = n, Name = m, ParsedDate = l, Place = p, Action = f });
//вызов метода ShowData
myList[0].ShowData(myList);
//задержка
Console.ReadKey();
}
}
}
}
static void Main(string[] args)
{
var diariesService = new DiariesService();
var consoleService = new ConsoleService();
Console.WriteLine("Начало.");
consoleService.PrintDiaries(diariesService.GetAllDiaries());
Console.WriteLine(new string('-', 100));
var nameNewDiary = "Дневник Чебурашки";
diariesService.AddDiary(nameNewDiary);
var newDiary = diariesService.GetDiaryByName(nameNewDiary);
if (newDiary.Number != 0)
{
newDiary.AddRecord("Начало дня", DateTime.Parse("1979-05-01 12:00:00"),
"Дома у Гены", "Вкусно поел");
}
Console.WriteLine("Вместе с дневником Чебурашки.");
consoleService.PrintDiaries(diariesService.GetAllDiaries());
Console.ReadLine();
}
Модели
/// <summary>
/// Запись в дневнике
/// </summary>
public class Record
{
// Id
public int Id { get; }
// Заголовок записи
public string Title { get; }
// Дата создания
public DateTime Date { get; }
// Место
public string Place { get; }
// Описание
public string Description { get; }
//ctor
public Record(int id, string title, DateTime date, string place, string desc)
{
if (string.IsNullOrWhiteSpace(title))
throw new ArgumentException(nameof(title));
if (string.IsNullOrWhiteSpace(place))
throw new ArgumentException(nameof(place));
if (string.IsNullOrWhiteSpace(desc))
throw new ArgumentException(nameof(desc));
Id = id;
Title = title;
Date = date;
Place = place;
Description = desc;
}
}
...
/// <summary>
/// Дневник
/// </summary>
public class Diary
{
public int Number { get; }
public string Name { get; }
private List<Record> _records = new List<Record>();
public IEnumerable<Record> Records => _records.AsEnumerable();
//ctor
public Diary(int number, string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentException(nameof(name));
Number = number;
Name = name;
}
/// <summary>
/// Внесение новой записи
/// </summary>
/// <param name="title">название записи</param>
/// <param name="date">дата записи</param>
/// <param name="place">место записи</param>
/// <param name="desc">описание записи</param>
public void AddRecord(string title, DateTime date, string place, string desc)
{
if (string.IsNullOrWhiteSpace(title))
throw new ArgumentException(nameof(title));
if (string.IsNullOrWhiteSpace(place))
throw new ArgumentException(nameof(place));
if (string.IsNullOrWhiteSpace(desc))
throw new ArgumentException(nameof(desc));
//вычисляем id для новой записи
int id = 1;
if (_records.Count > 0)
{
id = _records.Max(r => r.Id) + 1;
}
//добавляем новую запись
var record = new Record(id, title, date, place, desc);
_records.Add(record);
}
}
Сервисы
/// <summary>
/// Сервис дневников
/// </summary>
public class DiariesService
{
private List<Diary> _diaries;
//ctor
public DiariesService()
{
_diaries = GetDiaries();
}
private List<Diary> GetDiaries()
{
var d1 = new Diary(1, "Дневник крокодила Гены");
d1.AddRecord("Хороший поступок", DateTime.Parse("1979-05-01 12:00:00"),
"У меня дома", "Накормил Чебурашку");
d1.AddRecord("Очень хороший поступок", DateTime.Parse("1979-05-01 14:20:00"),
"На улице", "Спел песню про день рожденья");
var d2 = new Diary(2, "Дневник старухи Шапокляк");
d2.AddRecord("Отличное дело", DateTime.Parse("1979-05-01 12:00:00"),
"На улице", "Пнула урну");
d2.AddRecord("Классное дело", DateTime.Parse("1979-05-01 14:25:00"),
"На улице", "Обидела Чебурашку");
return new List<Diary> { d1, d2 };
}
/// <summary>
/// Получить все дневники
/// </summary>
/// <returns></returns>
public IEnumerable<Diary> GetAllDiaries()
{
return _diaries.AsEnumerable();
}
/// <summary>
/// Получить дневник по его имени
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public Diary GetDiaryByName(string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentException(nameof(name));
var diary = _diaries.FirstOrDefault(d => d.Name.Equals(name));
if (diary == null)
{
diary = new Diary(0, "Такой не найден");
}
return diary;
}
/// <summary>
/// Добавить новый дневник
/// </summary>
/// <param name="name"></param>
public void AddDiary(string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentException(nameof(name));
var number = 1;
if (_diaries.Count > 0)
{
number = _diaries.Max(d => d.Number) + 1;
}
var diary = new Diary(number, name);
_diaries.Add(diary);
}
}
...
public class ConsoleService
{
public void PrintDiaries(IEnumerable<Diary> diaries)
{
if (diaries == null)
throw new ArgumentNullException(nameof(diaries));
foreach (var diary in diaries)
{
Console.WriteLine();
Console.WriteLine($"{diary.Number}) {diary.Name}");
if (diary.Records.Count() == 0)
{
Console.WriteLine("В дневнике записей нет.");
}
else
{
PrintDiaryRecords(diary.Records);
}
}
}
private void PrintDiaryRecords(IEnumerable<Record> records)
{
foreach (var record in records)
{
Console.WriteLine($"\t{record.Date}: '{record.Title}'," +
$" '{record.Place}', '{record.Description}'");
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не так давно обновил Visual Studio и поставилNET Core 3
Не понимаю, как сделать, что бы подсчитывало не только русские букву но и английские буквы
хочу сделать игру на unity android, есть сфера вокруг которой должен крутиться объект firePoint c помощью джойстика, но объект который крутится вокруг...
Почему высвечивается ошибка CS0029(не получается преобразовать одно в другое)и как мне это сделать?