C#如何声明一个全局函数或方法?谁能告诉我如何在C#中声明全局函数,类似于模块在VB.net中的作用?我需要调用一个可以在form1、form2和form3中调用的函数。我有这段代码:使用System.Data.OleDb;namespaceXYZ{publicstaticclassModule{publicstaticvoiddbConnection(){OleDbConnectioncon=newOleDbConnection();con.ConnectionString="provider=microsoft.jet.oledb.4.0;datasource=..\dbCooperative.mdb";con.Open();}}}和form1:使用System.Data.OleDb;使用XYZ;namespaceXYZ{publicpartialclassfrmReports:Form{publicfrm1(){InitializeComponent();}privatevoidfrm1_Load(objectsender,EventArgse){Module.dbConnection();OleDbCommandcm=newOleDbCommand("SELECT*FROMtable",con);但是我有一个错误:“没有名称'con'存在”。您可以创建一个静态类。namespaceMyNamespace{publicstaticclassMyGlobalClass{publicstaticvoidMyMethod(){...}}}然后,您可以在调用类的using部分添加命名空间以访问它。像这样:使用MyNamespace;公共类CallingClass{publicvoidCallingMethod(){MyGlobalClass.MyMethod();如果您使用的是C#6.0或更高版本,则可以使用usingstatic。例如,使用静态ConsoleApplication.Developer;namespaceConsoleApplication{classProgram{staticvoidMain(string[]args){//全局静态函数,静态简写真DeveloperIsBorn(firstName:"Foo",lastname:"Bar").MakesAwesomeApp().Retires();}}}namespaceConsoleApplication{classDeveloper{publicstaticDeveloperDeveloperIsBorn(stringfirstName,stringlastname){returnnewDeveloper();}publicDeveloperMakesAwesomeApp(){返回这个;}publicDeveloperInsertsRecordsIntoDatabaseForLiving()返回这个;}publicvoidRetires(){//不是真的}}}另一个例子:usingstaticSystem.Console;namespaceConsoleApplication7{classProgram{staticvoidMain(string[]args){WriteLine("test");您可以创建一个静态类(甚至将它包含在它自己的命名空间中,以免污染主项目命名空间)并从任何地方调用它:namespaceSomeNamespace{publicstaticclassSomeClass{publicstaticstringSomeMethod(){...}}}然后,在你的代码中,你可以调用它:stringx=SomeNamespace.SomeClass.Some方法();或者,您可以在代码顶部设置一个using并在没有命名空间的情况下引用它:usingSomeNamespace;...字符串x=SomeClass.SomeMethod();@kol是对的,在C#中没有全局函数看看这篇MSDN帖子。我会使用图层(我将“Module”类重命名为“TransactionsModule”),它看起来像这样:使用System.Collections.Generic;使用System.Data.OleDb;namespaceXYZ{publicclassTransactionsModule{publicListGetPersons(stringquery,stringconnectionString){ListdbItems=newList();OleDbConnectionconn=newOleDbConnection(connectionString);尝试{conn.Open();varcmd=newOleDbCommand(query,conn);cmd.CommandText=查询;使用(OleDbDataReaderreader=cmd.ExecuteReader()){PersonobjPerson=newPerson();//这些是返回的列objPerson.Name=Convert.ToString(myReader["Name"]);objPerson.Age=Convert.ToInt32(myReader["Age"]);dbItems.Add(objPerson);}}catch(OleDbExceptionex){抛出ex;}最后{conn.Close();}返回dbItems;}}//这个类应该在另一个层,但我把它放在这里因为这是一个快速的例子publicclassPerson{publicstringName{get;放;}publicintAge{得到;放;}}}所有逻辑都被抽象到TransactionsModule类中,那么你只需要调用方法:GetPersons看看:以上是C#学习教程:如何使用c#声明全局函数或方法?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——usingSystem;使用System.Collections.Generic;使用XYZ.TransactionsModule;namespaceXYZ{publicpartialclassfrmReports:Form{publicfrm1(){InitializeComponent();受保护的TransactionsModulemoduleTran;}privatevoidfrm1_Load(objectsender,EventArgse){//我们初始化数据访问层类moduleTran=newTransactionsModule();//这个ConnectionString应该在你的app.configstringconString="provider=microsoft.jet.oledb.4.0;datasource=..\dbCooperative.mdb";stringsqlQuery="SELECT*FROMtable";列出ItStaff=moduleTran.GetPersons(sqlQuery,conString);}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
