Смущен тем, как реализовать значение и параметр ограничения - PullRequest
0 голосов
/ 02 марта 2020

Внесение некоторых завершающих штрихов в назначение класса, но у меня возникают проблемы с двумя понятиями.

Вот назначение: напишите C#. NET Framework консольное приложение, чтобы продемонстрировать использование случаи свойств в C#. Приложение выполнит следующие действия для достижения sh этой цели.

  1. Регистрирует каждый случай записи частного поля в установщике свойств. Перед выходом из программы выведите журнал активности на экран. Задайте значение каждого свойства каждого учащегося, чтобы упростить тестирование и работу этой функции ведения журнала.

  2. Выберите хотя бы одно свойство для учащихся и убедитесь, что его установщик имеет лог c в это не код по умолчанию для автоматического задания свойств. Ведение журнала не учитывается для этих требований. Смотрите пример WatchDogAbility из главы 3 слайды / текст. Исторически системы позволяли учащимся ограничивать просмотр своей личной информации. Реализуйте эту систему здесь, убедившись, что получатели свойств проверяют это значение перед возвратом информации об ученике. Идентификатор и имя учащегося не подлежат проверке.

  3. Отправьте снимок экрана с остановкой программы в режиме отладки в Visual Studio. Установите одно из свойств объекта Student. Пауза в строке, где новое значение записывается в приватное поле. Убедитесь, что новое значение отображается на экране вашего изображения (см. Пример ниже, используя Alt + Print Screen). Выведите все данные для всех учеников, скажем, минимум 10 учеников, по крайней мере, один с ограниченной личной информацией.

Я заблудился относительно того, как «регистрировать каждый случай написания приватное поле в установщике свойств ", и я также запутался в том, как я могу удовлетворить это требование". Исторически системы позволяли учащимся ограничивать просмотр их личной информации. Внедрите эту систему здесь, обеспечив проверку получателей свойств для этого значения перед возвратом информации об ученике. Идентификатор и имя студента освобождаются от необходимости проверки. "

Ниже приведен код, который у меня имеется:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assignment_3
{
    // Student Class
    public class Student
    {
        // Class Fields
        private int _graddate;
        public int _id, _total;
        public string _name, _major, _startdate, _state, _country, _email, _mailaddress;
        public long _phonenumber;

        // Name Propery Constructor - Read Only
        public int Id
        {
            get
            {
                return this._id;
            }
        }

        public string Name
        {
            get
            {
                return this._name;
            }
        }

        public int Total
        {
            get
            {
                return this._total;
            }
            set
            {
                this._total = value;
                Console.WriteLine($"Set Total to {value}");
            }
        }

        public int Graddate
        {
            get
            {
                return _graddate;
            }
            set
            {
                if (value < 2020)
                {
                    this._graddate = 0;
                }
                else
                {
                    this._graddate = value;
                }
            }
        }

        // Constructor
        public Student(int id, string name, string major, string startdate, int graddate, string state, string country, string email, long phonenumber, string mailaddress)
        {
            this._id = id;
            this._name = name;
            this._major = major;
            this._startdate = startdate;
            this._graddate = graddate;
            this._state = state;
            this._country = country;
            this._email = email;
            this._phonenumber = phonenumber;
            this._mailaddress = mailaddress;
        }

        public Student(int total)
        {
            this._total = total;
        }
    }

    // Main class
    public class MainClass
    {
        static void Main(string[] args)
        {
            Student perone = new Student(07211964, "Ryu", "Physical Education", "July 21, 1964", 2021, "Shimane", "Japan", "Hadoken@gmail.com", 81369207750, "285 Suzaku Castle");
            Student pertwo = new Student(02141965, "Ken", "Hospitality", "February 14, 1965", 2021, "California", "United States", "Shoryuken@gmail.com", 6503506500, "101 Battle Harbor");
            Student perthree = new Student(11031960, "E.Honda", "Culinary Arts", "November 03, 1960", 2016, "Higashi Komagata", "Japan", "KillerHeadRam@gmail.com", 810669203600, "462 Kapukon Yu");
            Student perfour = new Student(12231960, "Guile", "Aviation", "December 23, 1960", 2018, "Texas", "United States", "SonicBoom@gmail.com", 3109435470, "119 Air Force Base");
            Student perfive = new Student(03011968, "Chun-Li", "Criminology", "March 01, 1968", 2020, "North Point", "Hong Kong", "Hyakuretsukyaku@gmail.com", 85223661001, "911 Taiping Road");
            Student persix = new Student(02121966, "Blanka", "Electrical Engineering", "February 12, 1966", 2030, "Brasilia", "Brazil", "ShoutOfEarth@gmail.com", 4908001801976, "777 Amazon River Basin");
            Student perseven = new Student(06011956, "Zangief", "Russian", "June 01, 1956", 2013, "Moscow", "Russia", "RedCyclone@gmail.com", 4408005876638, "360 Big Factory");
            Student pereight = new Student(11221952, "Dhalsim", "Mental Health Services", "November 22, 1952", 2008, "New Delhi", "India", "YogaFire@gmail.com", 330800909617, "695 Marharaja's Palace");
            Student pernine = new Student(01271967, "Vega", "Psychology", "January 27, 1967", 2026, "Madrid", "Spain", "IzunaDrop@gmail.com", 34900811390, "187 Flamenco Tavern");
            Student perten = new Student(07021955, "Sagat", "Physical Education", "July 02, 1955", 2050, "Ayutthaya", "Thailand", "VanillaSagat@gmail.com", 39800928830, "311 King's Court");

            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9} \n", perone.Id, perone.Name, perone._major, perone._startdate, perone.Graddate, perone._state, perone._country, perone._email, perone._phonenumber, perone._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", pertwo.Id, pertwo.Name, pertwo._major, pertwo._startdate, pertwo.Graddate, pertwo._state, pertwo._country, pertwo._email, pertwo._phonenumber, pertwo._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", perthree.Id, perthree.Name, perthree._major, perthree._startdate, perthree.Graddate, perthree._state, perthree._country, perthree._email, perthree._phonenumber, perthree._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", perfour.Id, perfour.Name, perfour._major, perfour._startdate, perfour.Graddate, perfour._state, perfour._country, perfour._email, perfour._phonenumber, perfour._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", perfive.Id, perfive.Name, perfive._major, perfive._startdate, perfive.Graddate, perfive._state, perfive._country, perfive._email, perfive._phonenumber, perfive._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", persix.Id, persix.Name, persix._major, persix._startdate, persix.Graddate, persix._state, persix._country, persix._email, persix._phonenumber, persix._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", perseven.Id, perseven.Name, perseven._major, perseven._startdate, perseven.Graddate, perseven._state, perseven._country, perseven._email, perseven._phonenumber, perseven._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", pereight.Id, pereight.Name, pereight._major, pereight._startdate, pereight.Graddate, pereight._state, pereight._country, pereight._email, pereight._phonenumber, pereight._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", pernine.Id, pernine.Name, pernine._major, pernine._startdate, pernine.Graddate, pernine._state, pernine._country, pernine._email, pernine._phonenumber, pernine._mailaddress);
            Console.WriteLine("Student ID: {0}, Student Name: {1}, Major: {2}, School Start Date: {3}, School Graduation Date: {4}, State/Territory: {5}, Country: {6}, E-Mail: {7}, Phone Number: {8}, Mail Address: {9}", perten.Id, perten.Name, perten._major, perten._startdate, perten.Graddate, perten._state, perten._country, perten._email, perten._phonenumber, perten._mailaddress);

            Console.WriteLine("Instances of writing of a private field within a setter: {0}", Student.Total);
        }
    }
}

Спасибо за вашу помощь и объяснения!

1 Ответ

0 голосов
/ 02 марта 2020

Это должно помочь вам начать:

public class Student
{
    private static List<string> _log = new List<string>();

    public string _major;
    public string _startdate;
    public string _state;
    public string _country;
    public string _mailaddress;
    public long _phonenumber;

    private int _id;
    public int Id { get { return _id; } }

    public string _name;
    public string Name { get { return _name; } }

    private int _graddate;
    public int Graddate
    {
        get { return _graddate; }
        set
        {
            if (value < 2020)
            {
                this._graddate = 0;
                _log.Add($"Set {_id}.Graddate to `0` (attempted `{value}`)");
            }
            else
            {
                this._graddate = value;
                _log.Add($"Set {_id}.Graddate to `{value}`");
            }
        }
    }

    public string _email;
    public string Email
    {
        get { return _email; }
        set
        {
            this._email = value;
            _log.Add($"Set {_id}.Email to `{value}`");
        }
    }

    public static string GetLog()
    {
        return String.Join(Environment.NewLine, _log);
    }

    public Student(int id, string name, string major, string startdate, int graddate, string state, string country, string email, long phonenumber, string mailaddress)
    {
        this._id = id;
        this._name = name;
        this._major = major;
        this._startdate = startdate;
        this._graddate = graddate;
        this._state = state;
        this._country = country;
        this._email = email;
        this._phonenumber = phonenumber;
        this._mailaddress = mailaddress;
    }
}

public class MainClass
{
    static void Main(string[] args)
    {
        Student persix = new Student(02121966, "Blanka", "Electrical Engineering", "February 12, 1966", 2030, "Brasilia", "Brazil", "ShoutOfEarth@gmail.com", 4908001801976, "777 Amazon River Basin");
        Student perten = new Student(07021955, "Sagat", "Physical Education", "July 02, 1955", 2050, "Ayutthaya", "Thailand", "VanillaSagat@gmail.com", 39800928830, "311 King's Court");

        persix.Email = "qaz@bar.com";
        perten.Email = "foo@bar.com";

        Console.WriteLine("Instances of writing of a private field within a setter: {0}", Student.GetLog());

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...