我有几种方法可以将常见的 .NET 对象 OleDbConnection、XMLDocument、webBrowser 传递给对其进行操作的方法。我将它们作为没有 ref/out 关键字的对象传递。喜欢:
void btn_click()
{
OleDbConnection dbConn; XMLDocument Doc; webBrowser Browser;
// Do operations on dbConn, Doc and Browser here
Call(dbConn, Doc, Browser);
}
void Call(OleDbConnection dbConn, XMLDocument Doc, webBrowser Browser)
{
// Do operations on dbConn, Doc and Browser here
Call2(OleDbConnection dbConn, XMLDocument Doc, webBrowser Browser);
}
void Call2(OleDbConnection dbConn, XMLDocument Doc, webBrowser Browser)
{
// Do further operations on dbConn, Doc and Browser here
}
这些方法被调用了数千次,因此每次都会传递对象。该程序运行良好。在调用的方法中没有一个对象被重置或重新初始化,只使用它们的属性数据。所以我相信我不需要将它们作为“参考”传递。
我的问题是,如果我将所有这些作为 ref 传递,是否会有任何显着的性能提升,尤其是在数据库连接或网络浏览器导航方面?是否有任何文章描述了当对象作为 ref 传递和不传递时的性能提升?