public virtual BaseMessage ShallowCopy()
{
return (BaseMessage) this.MemberwiseClone();
}
В классе наследнике
public MarketCommission CommissionRate { get; set; }
public TradingStatistic TradingStatistic { get; set; } = new TradingStatistic();
public RiskInfo RiskInfo { get; set; } = new RiskInfo();
public override BaseMessage ShallowCopy()
{
RiskInfo riskInfo = this.RiskInfo?.ShallowCopy() as RiskInfo;
TradingStatistic tradingStatistic = this.TradingStatistic?.ShallowCopy() as TradingStatistic;
MarketCommission marketCommission = this.CommissionRate.ShallowCopy();
AccountInfo accountInfo = (AccountInfo) base.ShallowCopy();
accountInfo.RiskInfo = riskInfo;
accountInfo.TradingStatistic = tradingStatistic;
accountInfo.CommissionRate = marketCommission;
return (BaseMessage) accountInfo;
}
Все классы такие как: RiskInfo, TradingStatistic и т.д, созданы мною и имеют поля для записи данных.
Этот код почти без проблем скомпилируется в яве.
Единственное необычное здесь это оператор ?
Запись на сишарпе
foo?bar
эквивалентна следующему ява коду.
foo==null?null:foo.bar
Ключевое слово virtual нужно выбросить.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости