子类并非来自主类,我只想尝试区分它们。
即使我输入此内容,我也可以看到它是不可能的,但我有一些课程:
public class TransferServiceInformation {
public int ProviderId { get; set; }
public string PrePurchaseOverride { get; set; }
public bool PrePurchaseOverrideEnabled { get; set; }
}
和
public class TransferServiceProviderInformation {
public int ProviderId { get; set; }
public string PrePurchaseInfo { get; set; }
我希望如此,如果我尝试访问myTransferServiceInformation.PrePurchaseOverride
和PrePurchaseOverrideEnabled == false
,我们应该从具有相同ID的PrePurchaseInfo
返回TransferServiceProviderInformation
。
这样的事情是否可能?
我只是想到一个需要TransferServiceProviderInformation
作为参数传递的getter可能会起作用,并且如果ID不匹配则抛出异常。这是唯一的解决方案吗?问题是,我宁愿不必挖掘所有(数千行)代码来改变我(或其他人)调用此属性的所有地方。
答案 0 :(得分:1)
这只是一个想法:
使用类中的实例创建一个静态列表,并使用构造函数自动填充它。然后,您可以从外部检查具有相同ID的实例的此列表。
public class TransferServiceInformation
{
public int ProviderId { get; set; }
private string prePurchaseOverride;
public string PrePurchaseOverride
{
get
{
if(!PrePurchaseOverrideEnabled)
{
// Get instances from the other class where providerID matches
var instance = TransferServiceProviderInformation.Instances.Where(i => i.ProviderId == this.ProviderId).FirstOrDefault();
if(instance != null)
return (instance).PrePurchaseInfo;
}
return null; // If no match found
}
set
{
prePurchaseOverride = value;
}
}
private bool prePurchaseOverrideEnabled;
public bool PrePurchaseOverrideEnabled { get; set; }
}
public class TransferServiceProviderInformation
{
// Store your instances static
public static List<TransferServiceProviderInformation> Instances { get; set; }
public TransferServiceProviderInformation()
{
// Add every new instance to the list
Instances.Add(this);
}
public int ProviderId { get; set; }
public string PrePurchaseInfo { get; set; }
}
要待办事项:强>
如果某个实例被处理掉,请从实例列表中删除它。