Класс-конструктор-как реализовать? [требует правки]

289
08 февраля 2017, 22:18

Есть несколько классов с параметрами, задача-один из них заменить или добавить класс-конструктор Задачка лёгкая, уровня начальной школы, но что-то глуплю

введите сюда код    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace newproject
{
class Program
{

    static void Main(string[] args)
    {
        Human Katya = new Human();
        Katya.Hands = 10;
        Katya.Legs = 40;
        Katya.Head = 80;
        int SummKatya = Katya.SummOfParts();
        Console.WriteLine(SummKatya);

        Human Anna = new Human();
        Anna.Hands = 10;
        Anna.Legs = 40;
        Anna.Head = 80;
        int SummAnna = Anna.SummOfParts();
        Console.WriteLine(SummAnna);
        Human Victoria = new Human();
        Victoria.Hands = 100;
        Victoria.Legs = 100;
        Victoria.Head = 66;
        int SummVictoria = Victoria.SummOfParts();
        Console.WriteLine(SummVictoria);
        Console.ReadLine();
    }
}
    public class Human 
    {
        public int Hands;
        public int Legs;
        public int Head;
        public int SummOfParts()
        {
            int SummOfPart = Hands + Legs + Head;
            return SummOfPart;
        }
    }
}
Answer 1

Паттерн называется Prototype

public abstract class Human : ICloneable
{
    public string Name { get; set; }
    public int Hands { get; set; }
    public int Legs { get; set; }
    public int Head { get; set; }
    public override string ToString()
    {
        return $"Девушка: {Name}-{Hands}-{Legs}-{Head}";
    }
    public int SummOfParts()
    {
        int SummOfPart = Hands + Legs + Head;
        return SummOfPart;
    }
    public abstract object Clone();
}
public class Woman : Human
{
    public override object Clone()
    {
        //здесь так для упрощения, на самом деле
        //тут нужно делать копирование всех свойств
        return this.MemberwiseClone() as Human;
    }
}

class Program
{
    static void Main(string[] args)
    {
        //первая девушка (будет образцом)
        Woman Anna = new Woman()
        {
            Name = "Anna",
            Head = 66,
            Hands = 100,
            Legs = 100
        };
        Console.WriteLine(Anna.ToString());
        //клонируем девушку
        Woman Natasha = (Woman)Anna.Clone();
        //изменяем имя
        Natasha.Name = "Natasha";
        Console.WriteLine(Natasha.ToString());
        Console.ReadKey();
        //выводит
        //Девушка: Anna-100-100-66
        //Девушка: Natasha - 100 - 100 - 66

    }
}
READ ALSO
'SplashScreen' does not contain a constructor that takes 1 arguments

'SplashScreen' does not contain a constructor that takes 1 arguments

Такая ошибка при попытке создать Splash заставкуПример был взять на MSDN

335
WPF c# ProcessStartInfo вопрос с параметрами

WPF c# ProcessStartInfo вопрос с параметрами

Добрый деньЕсть приложение на WPF которое запускает cmd с параметрами, получает результат и выводит его в textbox, при этом окно cmd не должно быть...

353
Console Как вставить текст из буфера обмена?

Console Как вставить текст из буфера обмена?

Можно ли как нибудь при копирование текста в консоль методом ctrl + v вставить копированный текст из буфера в консоль?

494