C# 哪种被动扩展代码更有效?
哪一个更有效,为什么?我刚刚开始学习RX,并试图了解如何编写更好的代码 比如我可以C# 哪种被动扩展代码更有效?,c#,system.reactive,C#,System.reactive,哪一个更有效,为什么?我刚刚开始学习RX,并试图了解如何编写更好的代码 比如我可以 tradesfeed.Where(trade=>trade.Size > 500).Subscribe(x => { Console.WriteLine("big trade: " + x.Symbol + " " + x.Size); }); tradesfeed.Where(trade=>trade.Size <= 500).Subscribe(x => {
tradesfeed.Where(trade=>trade.Size > 500).Subscribe(x =>
{
Console.WriteLine("big trade: " + x.Symbol + " " + x.Size);
});
tradesfeed.Where(trade=>trade.Size <= 500).Subscribe(x =>
{
Console.WriteLine("little trade: " + x.Symbol + " " + x.Size);
});
第二种方法在减少代理分配方面效率更高。但差别如此微小,根本不应该被视为你选择的一个因素。对于您的代码,选择更简单的代码,不要担心微优化。让我们假设差异小于1%。那么,性能应该是您如何编写代码的首要考虑因素吗?第二个因素效率更高(可以忽略不计),但更难重新考虑。我使用前95%的时间。
tradesfeed.Subscribe(x =>
{
if (x.Size > 500)
Console.WriteLine("big trade: " + x.Symbol + " " + x.Size);
else
Console.WriteLine("little trade: " + x.Symbol + " " + x.Size);
});