class Person
、2つの子クラスStaff
、およびStudent
interface がありますIPerson
。また、クラスDatabase
とクラスがありGateway
ます。クラスDatabase
は
private string name = "username";
と方法
public void getName() {return id;}
Staff と Student の両方に getName() メソッドがあります。ゲートウェイを介して、学生とスタッフのクラスからデータベースへのリクエスト getName() を作成する必要があります。クラス Gateway は、メソッド getName() がStaff
( then return id
) またはStudent
( then return "Go away!"
) によって要求されたかどうかを確認する必要があります。誰でもそれで私を助けてくれませんか。Gateway
クラスのインターフェースとして使おうと思ってDatabase
いたのですが、C#の勉強しかしていないのでどうすればいいのかわかりません。または、これを行うためのより良い方法があるかもしれません...助けてくださいありがとう
ここにいくつかのコードがあります:
public class Staff : Person
{
public Staff() {}
public Staff(string id): base(id) {}
public override string getName()
{
throw new NotImplementedException();
}
public override void Update(object o)
{
Console.WriteLine(id + " notified that {1}", id, o.ToString());
}
public override void UpdateMessage(object p)
{
Console.WriteLine(id + " notified about new message in chat: {1}", id, p.ToString());
}
}
public class Student : Person
{
public Student() {}
public Student(string id): base(id) {}
public override string getName()
{
throw new NotImplementedException();
}
public override void Update(object o)
{
Console.WriteLine(id +" notified that {1}", id, o.ToString());
}
public override void UpdateMessage(object p)
{
Console.WriteLine("Message for " + id + " {1}", id, p.ToString());
}
}
public abstract class Person : IPerson
{
public string id;
public Person() { }
public abstract string getName();
public Person(string i) { this.id = i; }
public abstract void Update(Object o);
public abstract void UpdateMessage(Object p);
}
public interface IPerson
{
void Update(Object o);
void UpdateMessage(Object p);
string getName();
}
class database
{
public string username = "username";
private string name = "user details";
private string grade = "user grade";
public string getName(Object o)
{
if (o is Staff) { return name; }
else { return "Go away!"; }
}
public string getgrade() { return grade; }
}
public class Gateway
{
public void DoSomethingWithPerson(IPerson person)
{
string iD = person.getName();
if (person is Student)
{
return "go away!";
}
else if (person is Staff)
{
return name;
}
}
}