通过引用传递XMLDocument、OleDbConnection和webBrowser对象
本文关键字:OleDbConnection webBrowser 对象 XMLDocument 引用 | 更新日期: 2023-09-27 18:20:32
我有几个方法可以将常见的.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传递的时候的性能增益?
首先直接回答您的问题:不,使用ref不会有任何显著的收益:您的对象都是引用类型(请参阅此处:http://msdn.microsoft.com/en-us/library/t63sy5hs(v=vs.80).aspx),因此只有它们自己的引用被传递给函数。
除此之外,我在您的代码中看到,您有一堆使用相同参数的方法,我认为明智的做法是考虑进行一些重构,并将所有这些方法分组到(一些)类中,并将您的连接、xml文档和浏览器作为类的属性。我认为这会让你的代码更干净。