当前位置: 首页 > 编程语言 > C#

实例变量可以通过静态方法访问吗?分享

时间:2023-04-10 14:20:10 C#

是否可以通过静态方法访问实例变量?在C#中,是否可以在不使用参数传递的情况下通过不同类中的静态方法访问实例变量?在我们的项目中,我有一个数据访问层类,它有很多静态方法。在这些方法中,SqlCommand超时值是硬编码的。在我们框架中的另一个类(Dac)中,有许多调用这些静态方法的实例方法。我不想使用参数传递编写太多代码。您有比参数传递更简单的解决方案吗?是的,可以从不带参数的静态方法访问实例变量,但前提是您可以通过声明为静态的东西访问它。示例:publicclassAnotherClass{publicintInstanceVariable=42;}公共类程序{staticAnotherClassx=newAnotherClass();//这是静态的。staticvoidMain(string[]args){Console.WriteLine(x.InstanceVariable);}}当然,你可以将实例作为参数传递给方法。比如:publicstaticvoidDoSomething(Buttonb){b.Text="foo";但除此之外你不能得到任何实例变量。静态方法没有实例可以使用,所以没有。没有参数传递是不可能的。另一种选择可能是使用该类的静态实例(Mark的示例显示了此方法的工作原理),但是,根据您的示例,我不确定这是否能解决您的问题。就个人而言,我认为参数传递是可行的方法。我仍然不确定你为什么要避免它。是的,它可以,只要它在范围内有一个对象的实例。例如单例,或在方法本身内创建的对象。举一个常见的场景:publicstaticstringUserName{returnSystem.Web.HttpContext.Current.User.Identity.Name;不,你不能。如果你想访问实例变量,你的方法不应该是静态的。以上是C#学习教程:是否可以通过静态方法访问实例变量?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: