阅读cache-friendly code in this SO question,我想知é“在使用C#ä¸çš„类时,触å‘和处ç†äº‹ä»¶æ˜¯å¦æ¯”覆盖方法更容易缓å˜ï¼ˆå› 为其ä¸ä¸€ä¸ªç”案表明应该é¿å…虚拟方法,至少在C ++ä¸ï¼‰ï¼Œè¿˜æ˜¯æœ‰æ¯”两ç§æ–¹æ³•æ›´å¥½çš„ç–略?
ç”案 0 :(得分:4)
 Â我想知é“在使用C#ä¸çš„类时,触å‘和处ç†äº‹ä»¶æ˜¯å¦æ¯”è¦†ç›–æ–¹æ³•æ›´åŠ ç¼“å˜å‹å¥½
一般æ¥è¯´ï¼Œæ²¡æœ‰ã€‚事件将需è¦è°ƒç”¨ä¸€ä¸ªå•ç‹¬çš„类实例,该实例将ä½äºŽå•ç‹¬çš„内å˜ä½ç½®ã€‚与虚拟方法调用相比,这将具有相åŒï¼ˆæˆ–å¯èƒ½æ›´ç³Ÿï¼‰çš„缓å˜é—®é¢˜ã€‚
 Â还是有比两ç§æ–¹æ³•æ›´å¥½çš„ç–略?
ä¸å¹¸çš„是,惯用的C#往往是éžç¼“å˜å‹å¥½çš„。为了编写缓å˜å‹å¥½çš„C#代ç ,您通常希望使用struct
而ä¸æ˜¯class
,é¿å…虚拟方法,é¿å…事件,é¿å…代ç†ï¼ˆè‡³å°‘有关é—的代ç )ç‰ç‰.Rico Mariani有一个很好的blog post on Value based programming详细讨论了许多这些问题。