'I want to create a register method and store it in list, is this approach fine? C#

Hi there I am trying to create a terminal based application in C#. However I am getting confused. I have a list in memberrecord class, User is the parent class whereas admin & ProjectMember are its children. I want to be able to register a projectmember object by getting inputs from user; I want the new registered projectmember to be added in the list in memberrecord. In the admin class I want to check if the register method is working fine and it is printing out the users list. When I try to code it out and create a register method in User Parent class and try to print it, it is not printing and not showing up. In which class should I create the regiter method? And also the print method?
public class UserRecord
{
private List<User> _users;
public UserRecord()
{
_users = new List<User>();
}
public List<User> Users
{
get { return _users; }
set { _users = value; }
}
public void AddUser(User u)
{
_users.Add(u);
}
public int NoOfUser()
{
return _users.Count;
}
public void PrintUser()
{
foreach (User u in _users)
{
Console.WriteLine(u.Id + u.Name);
}
}
public void RegisterUser()
{
ProjectMember projectMember = new ProjectMember();
System.Console.WriteLine("Enter ID:");
projectMember.Id = Convert.ToInt16(Console.ReadLine());
System.Console.WriteLine("Enter Name:");
projectMember.Name = Console.ReadLine();
System.Console.WriteLine("Type of member");
int input;
input = Convert.ToInt16(Console.ReadLine());
if (input == 1)
{
projectMember.MemberType = MemberType.Manager;
}
else
{
projectMember.MemberType = MemberType.Member;
}
Console.WriteLine(projectMember.Id + projectMember.Name);
UserRecord userRecord = new UserRecord();
userRecord.AddUser(projectMember);
}
}
and enum MemberType:
public enum MemberType
{
Manager, Member
}
And ProjectMember class:
public class ProjectMember : User
{
private MemberType _memberType;
public MemberType MemberType
{
get { return _memberType; }
set { _memberType = value; }
}
public ProjectMember(int id, string name, MemberType memberType) : base(id, name)
{
_memberType = MemberType;
}
public ProjectMember(){ }
}
and Admin class:
public class Admin : User
{
public Admin(int id, string name) : base(id, name)
{ }
}
and User class:
public abstract class User
{
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
public User(int id, string name)
{
_id = id;
_name = name;
// _users = new List<User>();
}
public User(){ }
}
and Program class:
class Program
{
public static void Main(string[] args)
{
UserRecord userRecord = new UserRecord();
userRecord.RegisterUser();
userRecord.NoOfUser();
userRecord.PrintUser();
}
}
I am developing it further along. So I know I have to work in while loop in the main, but I wanted to test it along the way
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
