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

为什么要使用C#静态类?分享

时间:2023-04-10 19:24:48 C#

C#为什么要用静态类?可能重复:何时在C#中使用静态类我经常将我的类设为静态,但我不确定何时使用静态或不使用静态类或有什么区别。有人可以解释一下吗?使类静态只是防止人们试图创建它的实例。如果您的所有类都是静态成员,那么将类本身设置为静态是一个很好的做法。如果一个类被声明为静态的,那么变量和方法也应该被声明为静态的。一个类可以声明为静态的,这意味着它只包含静态成员。不能使用new关键字创建静态类的实例。加载包含类的程序或命名空间时,.NETFramework公共语言运行时(CLR)会自动加载静态类。使用静态类来包含与特定对象无关的方法。例如,通常需要创建一组不作用于实例数据且与代码中的特定对象无关的方法。您可以使用静态类来保存这些方法。->静态类的主要特点是:ExamplestaticclassCollegeRegistration{//所有静态成员变量staticintnCollegeId;//CollegeId对所有在读的学生都是一样的staticstringsCollegeName;//名称将是相同的静态字符串sColegeAddress;//学院地址也一样//成员函数publicstaticintGetCollegeId(){nCollegeId=100;返回(nCollegeID);}//其他人也有类似的实现。}//classendpublicclassstudent{intnRollNo;字符串名字;publicGetRollNo(){nRollNo+=1;返回(nRollNo);}//同样....publicstaticvoidMain(){//不需要。//CollegeRegistrationobjCollReg=newCollegeRegistration();//.intcid=CollegeRegistration.GetCollegeId();字符串sname=CollegeRegistration.GetCollegeName();}//Mainend}静态类在某些情况下很有用,但与大多数语言功能一样,使用它们可能会被误用和/或过度使用。正如DylanSmith已经提到的,使用静态类的最明显的例子是如果你有一个只有静态方法的类。允许开发人员实例化此类类是没有意义的。请务必注意,过多的静态方法本身可能表明您的设计策略存在缺陷。我发现当你创建一个静态函数时,问问自己是一件好事——它更适合作为a)实例方法,还是b)接口的扩展方法。这里的想法是,对象行为通常与对象状态相关联,这意味着行为应该属于对象。通过使用静态函数,您暗示该行为不应属于任何特定对象。过度使用静态函数会阻碍多态性和接口驱动设计——它们不能在派生类中被重写,也不能连接到接口。通常最好通过扩展方法将“助手”功能绑定到接口,这样接口的所有实例都可以访问共享的“助手”功能。在我看来,静态函数绝对有用的一种情况是创建一个.Create()或.New()方法来实现对象创建的逻辑,例如当你想代理正在创建的对象时,publicclassFoo{publicstaticFooNew(stringfooString){ProxyGeneratorgenerator=newProxyGenerator();返回(Foo)generator.CreateClassProxy(typeof(Foo),newobject[]{fooString},newInterceptor());这可以与代理框架一起使用,例如CastleDynamicProxy),您可以在其中根据分配给对象方法的某些属性拦截/注入函数到对象中。一般的想法是您需要一个特殊的构造函数,因为从技术上讲,您正在创建具有特殊附加功能的原始实例的副本。以上就是C#学习教程:为什么要用C#静态类?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: