【发布时间】:2015-04-29 11:56:05
【问题描述】:
我有一个接口 IProduct 和两个部分类 SearchedProductInternal 和 SearchedProductExternal。 这两个类是来自 3rd 方 Web 服务搜索的扩展类,但它们返回的结果类型略有不同。 我想对两者都使用接口,所以它们返回的类型是相同的。我知道如何继承,但我该怎么做才能返回“名称”,因为接口和 SearchedProductInternal 具有相同的对象名称?
我的界面类似如下:
public interface IProduct
{
string Name { get; }
string ID { get; }
string DescriptionShort { get; }
string DescriptionLong { get; }
}
我的对象 SearchedProductInternal 具有以下属性:
string Name;
int ObjectIdField;
string DescriptionShortField;
string DescriptionLongField;
所以这是我继承的地方
public partial class SearchedProductInternal : IProduct
{
public string ID
{
get { return ObjectIdField.ToString(); }
}
public string Name
{
//What do I do here?
}
public string DescriptionShort{get { return shortDescriptionField; }
}
public string DescriptionLong {get { return longDescriptionField; }
}
}
我想返回在 SearchedProductInternal 类中分配的原创名称,但我不知道该怎么做,因为如果我只是放
return Name
我收到一个 stackoverflow 错误,因为它似乎一直在调用它自己?
【问题讨论】:
-
重命名 SearchedProductInternal 类的变量
-
你想叫什么名字?在另一个 Partial 类中是否有 Name 的显式实现?
-
@jehof 我无法重命名搜索到的产品内部类中的任何内容,因为这是我从第 3 方网络服务获得的东西,我只是针对它创建了一个部分类,因此我可以从我的界面继承。
-
@MichalCiechan 我想从 OriginalSearchedProductInternal 中调用这个名称。我通过使其成为部分来扩展它。想我会更新我的问题以使其更清楚
-
通过局部化来扩展?除非您从 3rd 方供应商处获取 SearchedProductInternal 作为 .cs 文件并对其进行编译,否则这将不起作用,使部分内容仅告诉编译器在不同的 .cs 文件中期望更多的类,它不会扩展运行时类型。
标签: c# inheritance