C# 无法将类型1隐式转换为类型1
这将是我关于stackoverflow的第一个问题,所以请耐心听我说 这是我得到的错误 错误CS0029:无法将类型“Sales.Mhebe.Data.Contact”隐式转换为“Contact”。 现在,如果我还没有和另外3个班一起做过,这就不会这么奇怪了。 ie)Sales.Mhebe.Data.Employee-to-Employee。 任何指导都将不胜感激C# 无法将类型1隐式转换为类型1,c#,visual-studio,C#,Visual Studio,这将是我关于stackoverflow的第一个问题,所以请耐心听我说 这是我得到的错误 错误CS0029:无法将类型“Sales.Mhebe.Data.Contact”隐式转换为“Contact”。 现在,如果我还没有和另外3个班一起做过,这就不会这么奇怪了。 ie)Sales.Mhebe.Data.Employee-to-Employee。 任何指导都将不胜感激 protected void PopulateContactFields() { string contactID = FK
protected void PopulateContactFields()
{
string contactID = FKContactIDTextBox.Text;
if (contactID == "")
{
MessageLabel.Text = "Please Select a Sales Person ID";
ClearFields();
DetailPanel.Visible = false;
}
else
{
ContactController contactControllers = new ContactController();
try
{
int lookupContact = int.Parse(contactID);
Contact contacts = contactControllers.LookupContact(lookupContact);
if (contacts == null)
{
MessageLabel.Text = "Contact" + lookupContact + " not found";
DetailPanel.Visible = false;
ClearFields();
}
else
{
PKContactIDTextBox.Text = contacts.ContactID.ToString();
NameStyleTextBox.Text = contacts.NameStyle;
ContactTitleTextBox.Text = contacts.Title;
FirstNameTextBox.Text = contacts.FirstName;
MiddleNameTextBox.Text = contacts.MiddleName;
LastNameTextBox.Text = contacts.LastName;
SuffixTextBox.Text = contacts.Suffix;
EmailAddressTextBox.Text = contacts.EmailAddress;
EmailPromotionTextBox.Text = contacts.EmailPromotion.ToString();
PhoneTextBox.Text = contacts.Phone;
PasswordSaltTextBox.Text = contacts.PasswordSalt;
PasswordHashTextBox.Text = contacts.PasswordHash;
AdditionalInfoTextBox.Text = contacts.AdditionalContactInfo;
ContactRowGuidTextBox.Text = contacts.RowGuid.ToString();
ContactModifiedDateTextBox.Text = contacts.ModifiedDate.ToString();
}
}
catch (Exception ex)
{
MessageLabel.Text = "Error Populating Contact Fields with exception " + ex.Message;
DetailPanel.Visible = false;
}
}
}
错误出现在Contact contacts=ContactController.LookupContact(LookupContact)
如果您需要说任何其他类与contact有关,请让我知道。您在名称空间中有
contact
类,而不是Sales.Mhebe.Data.contact
,将对象分配给Sales.Mhebe.Data.contact将删除错误
Sales.Mhebe.Data.Contact contacts = contactControllers.LookupContact(lookupContact);
如果要将Sales.Mhebe.Data.Contact
分配给其他Contact类,则可以使用Sales.Mhebe.Data.Contact
Sales.Mhebe.Data.Contact salescontacts = contactControllers.LookupContact(lookupContact);
Sales.Mhebe.Data.Contact contacts = new Contact{ContactPublicProperty1 = salescontacts.Property1, ContactPublicProperty2 = salescontacts.Property2}
很可能你的名字有点冲突。请注意,错误消息显示的是关于
Sales.Mhebe.Data.Contact
和Contact
。编译器总是对完整的类名进行操作,并且在上下文Contact
中,它会被解释为名为Contact
(没有任何名称空间)的类。检查是否
Sales.Mhebe.Data.Contact contacts = contactControllers.LookupContact(lookupContact);
会有用的。然后消除名称冲突,或者继续使用完整的类名。Contact contacts=(Contact)contactControllers.LookupContact(LookupContact);你需要像我在上一篇评论中所做的那样转换它,也请发布这两个类的定义,非常感谢!我必须找到这个联系人类。如果两个类都有相同的字段和属性,那么在这种情况下,会抛出相同的错误??这不会编译,因为它们看起来不兼容。欢迎@user2971026,问问自己为什么用相同的字段创建两个不同的类型。简单地说,不要那样做。正好一个。