为什么应该将电子邮件地址显示为Windows.ApplicationModel.Contacts.ContactField?

时间:2012-12-20 01:53:15

标签: c# windows-8 contacts windows-store-apps

我有这段代码:

private async void ButtonSelectContact_OnTapped(object sender, TappedRoutedEventArgs e)
{
    var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker
    {
        CommitButtonText = "Invite"
    };
    var contact = await contactPicker.PickSingleContactAsync();
    if (contact != null)
    {
        textBoxPerson.Text = contact.Name;
        textBoxEmail.Text = contact.Emails[0].ToString();
    }
}

..效果很好,除了在选择联系人之后,textBoxEmail.Text包含“Windows.ApplicationModel.Contacts.ContactField”(它应该类似于“rupertTpupkin@kingOfComedy.com”)。

2 个答案:

答案 0 :(得分:2)

那是因为contacts.EmailsContactField个对象的列表。使用contact.Emails[0].Value获取所需的电子邮件地址。您可以使用.Type检索电子邮件地址的类型。

MSDN官方文档:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.contacts.contactfield

答案 1 :(得分:1)

因为它们在实现类时没有覆盖ToString()方法,所以它调用Object的ToString()方法,该方法返回类名。您可以致电contact.Emails[0].Value获取价值。