WinRT开发:组件、模板与自定义元素详解
1. 集合操作与优化
在处理集合时,如std::vector及其WinRT包装器(如Vector<T>),应尽可能使用std::vector,仅在从WinRT类导出时使用Vector<T>。因为原生C++类型的开销比WinRT类型小,这是由WinRT基于接口的特性决定的。
以下是一个简单的示例,展示了如何优化Reviews属性的实现:
_reviews = reviews->GetView(); } return _reviews; }该属性实现尝试通过缓存IVectorView<BookReview>结果来进行优化。如果没有添加新的评论,或者该属性从未被调用(通过_reviews中的nullptr表示),则直接返回缓存结果。否则,会创建Vector<BookReview>,并使用IVector<BookReview>::Append添加BookReview对象。
添加评论的方法AddReview实现如下: