如果 main class 中的 属性 设置为 false,则使用 subclass in my main class 中的值
Use a value from a subclass in my main class if a property in main class is set to false
子 class 不是从主 class 派生的,我只是想区分它们。
即使我输入这个,我也能看到这是不可能的,但我有一些 classes:
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
它应该从 TransferServiceProviderInformation
return PrePurchaseInfo
使用相同的编号.
有可能吗?
我只是想,需要将 TransferServiceProviderInformation
作为参数传递的 getter 可能有效,如果 ID 不匹配则抛出异常。那是唯一的解决办法吗?问题是,我宁愿不必深入研究所有(数千行)代码来更改我(或其他人)称之为 属性.
的所有地方
这只是一个想法:
在 class 中创建一个包含实例的静态列表,并使用构造函数自动填充它。然后您可以从外部检查此列表以查找具有相同 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; }
}
待办事项:
如果一个实例被处置,将其从实例列表中删除。
子 class 不是从主 class 派生的,我只是想区分它们。
即使我输入这个,我也能看到这是不可能的,但我有一些 classes:
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
它应该从 TransferServiceProviderInformation
return PrePurchaseInfo
使用相同的编号.
有可能吗?
我只是想,需要将 TransferServiceProviderInformation
作为参数传递的 getter 可能有效,如果 ID 不匹配则抛出异常。那是唯一的解决办法吗?问题是,我宁愿不必深入研究所有(数千行)代码来更改我(或其他人)称之为 属性.
这只是一个想法:
在 class 中创建一个包含实例的静态列表,并使用构造函数自动填充它。然后您可以从外部检查此列表以查找具有相同 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; }
}
待办事项:
如果一个实例被处置,将其从实例列表中删除。