我开始爱上扩展方法,但我只是不知道如何仅为确定的 Object 类型创建 EM。
我有例如:
public static void AddPhoneNumberToContact(this Contact contact, PhoneType type, String number)
{
lock (contact)
{
PhoneRow pr = PhoneRow.CreateNew();
pr.SetDefaults();
pr.PtypeIdx = type;
pr.PhoneNumber = number;
contact.Phones.Add(pr);
pr = null;
}
}
我的问题是我想在 Person 对象中也有这个方法,这就是我命名的原因
AddPhoneNumberToContact
AddPhoneNumberToPerson
有没有办法让 AddPhoneNumber 处理提供的对象?
或者解决方案是
public static void AddPhoneNumber(this object contact, ...
{
...
if(typeof(Contact) == contact)
((Contact)contact).Phones.Add(pr);
else if(typeof(Person) == contact)
((Person)contact).Phones.Add(pr);
}
谢谢你。