Другие языки программирования и технологии

C#.Объясните код. Class + Enum

Вкратце что здесь происходит, типа создаются 2 человека (девушка и мужчина) у обоих есть свое имя пол и статусы (встречаются, одиноки итп) короче, 2 человека-это два объекта класса PersonInformation.Автор видео который объясняет про энумираторы делает так что если у обоих статус "одинок" то этот статус меняет у обоих на "встречается" для этого он сделал метод в котором проверяет статусы у обоих человека-но здесь мне не понятно одно, почему он после проверки статуса первого человека берет переменную напрямую у класса datingStatus и сравнивает, то есть почему он не проверяет так:
Propose(PersonInformation anotherPerson,PersonInformation anotherPerson2)
if(anotherPerson.datingStatus==DatingStatus.Single && anotherPerson2==DatingStatus.Single){
//обоим присвоить соотвествующий статус, то есть "встречаются"
}
то есть почему на прямую не обращаются к объектам и их к статусам как у него при проверке первого выражения
Не понял вопрос. Напиши код по-другому, как считаешь нужным. Сравни результат работы. Или тут (в комментариях) напиши свой вариант.
Алексiй Александровичъ
Алексiй Александровичъ
58 065
Лучший ответ
Валерий Перков Вот мой вариант:
======================================================
public TestScript NewHuman;
public TestScript NewHuman2;
void Start()
{
NewHuman = new TestScript("Movsar","Isaev",19,Working.NoWorking);
NewHuman2 = new TestScript("Deni", "Isaev", 11, Working.NoWorking);
InputInformation(NewHuman);

NewHuman.Check(NewHuman, NewHuman2);
=====================================================================
(второй класс-файл)
public void Check(TestScript One,TestScript Two)
{
if(One.WorkingStatus !=Working.Working && Two.WorkingStatus != Working.Working)
{
One.WorkingStatus = Working.Working;
Two.WorkingStatus = Working.Working;
}
Проверка выполняется в методе объекта, поэтому при обращении к свойствам этого же объекта имя объекта не указывается.
Илья Игнатенко
Илья Игнатенко
10 312
using System;
using System.Collections.Generic;

namespace ConsoleApp9
{
class Program
{
static void Main(string[] args)
{
// Создает экземпляр объекта
PersoneInfo Male = new PersoneInfo("Герогий", 45) { Status = PersoneInfo.DatingStatus.Single };
// Создает экземпляр объекта
PersoneInfo Famele = new PersoneInfo("Люба хуюба", 75) { Status = PersoneInfo.DatingStatus.Single };

// Equals выполняет сравнение своего объекта Male.Status со значением объекта Famele.Status.
Console.WriteLine(Male.Equals(Famele)); // Возвращает: true.
Console.WriteLine(Famele.Status); // Значение сменилось на Dating
Console.WriteLine(Male.Status); // Значение сменилось на Dating
}
}

[Serializable] // Хуелизация
public class PersoneInfo : IEquatable< PersoneInfo > // Наследуем для Equals
{
// Монструктор с 2 параметрами имя и возраст.
public PersoneInfo(string Name, int Age)
{
this.Name = Name;
this.Age = Age;
Country = null;
City = null;
Status = null;
Address = null;
}
// Монструктор с 6 параметрами имя и возраст.
public PersoneInfo(string Name, int Age, string Address, string City, string Country, DatingStatus DatingStatus)
{
this.Name = Name;
this.Age = Age;
this.Address = Address;
this.City = City;
this.Country = Country;
Status = DatingStatus;
}

// Возвращает имя
public string Name { get; set; }
// Возвращает аддресс
public string Address { get; set; }
// Возвращает город
public string City { get; set; }
// Возвращает странну
public string Country { get; set; }
// Возвращает возраст
public int Age { get; set; }
// // Возвращает статус
public DatingStatus? Status { get; set; }
// Возвращает ид
public Guid Id { get => Guid.NewGuid(); }

// Сравнивает этот экземпляр PersonInfo с PersonInfo аргумента
public bool Equals(PersoneInfo other)
{
if (other.Status == DatingStatus.Single && Status == DatingStatus.Single) // Если оба равны сингловому статусу, то =>
{
other.Status = Status = DatingStatus.Dating; // задаем для статуа этого экземпляра новое значение и задаем его значение для экземпляра аргумента
return true; // Возврат значения об успешности
}
else
{
return false; // Возврат значения об провале операции
}
}

// Перечисление статуса
public enum DatingStatus
{
Single = 0,
ItsComplicated = 1,
Dating = 2
};
}
}
Валерий Перков Ахахаха))) спасибо)
Алексiй Александровичъ Метод Equals не соответствует своему назначению. Это говнокод 80-го уровня!