case Choices.ADD_PERSON:
Console.WriteLine("enter info for person to add.");
InfoForPerson();
PersonList Z = x + p;
break;
case Choices.REMOVE_PERSON:
Console.WriteLine("enter info for person to remove: ");
InfoForPerson();
Z = x - p;
break;
上記は、メニューからオプションを選択した場合に発生する 2 つのことです。結果はChoices.ADD_PERSON
予想通りで、人が追加されました。ただし、 + & - はまったく同じように、ちょうど逆に機能すると思いましたが、そのようには発生していません。
public static PersonList operator -(PersonList x, Person y)
{
PersonList temp = x;
if (temp._Plist.Contains(y))
{
temp._Plist.Remove(y);
}
return temp; }
上記は、減算演算子の私の定義です。以下は、ユーザーが加算/減算する人を選択できるようにするために使用していたコードです。
public static void InfoForPerson()
{
Console.Write("Enter your name: ");
string name = Console.ReadLine();
string phone = ValidPhone();
string email = ValidEmail();
p = new Person(name, phone, email);
減算ではなく、加算に対しては正常に機能します。p を見たところ、データは正常に保持されていますが、既にリストにある項目と一致していません。