java bll dal_三层架构中的DAL和BLL是否要定义为静态类?

本文探讨了C#中静态类和静态成员的特性,包括静态构造函数、静态方法和静态变量。强调了静态类不能实例化、静态成员与类相关联、静态方法不能访问实例成员等要点。同时,通过一个数据库访问的示例展示了如何使用静态方法进行SQL操作,如GetTable、ExcuteSQL等,说明在不需要实例化类的情况下可考虑使用静态类。文中还提到了静态成员的生命周期和内存管理,以及在何时选择静态类或非静态类的建议。
摘要由CSDN通过智能技术生成

你深入理解一下静态类,在做决定

静态类的主要特性:

1:仅包含静态成员。

2:无法实例化。

3:是密封的。

4:不能包含实例构造函数。

静态成员1:非静态类可以包含静态的方法、字段、属性或事件;

2:无论对一个类创建多少个实例,它的静态成员都只有一个副本;

3:静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量;

4:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;

5:虽然字段不能声明为 static const,但 const 字段的行为在本质上是静态的。这样的字段属于类,不属于类的实例。因此,可以同对待静态字段一样使用 ClassName.MemberName 表示法来访问 const 字段;6:C# 不支持静态局部变量(在方法内部定义静态变量)。

静态构造函数

1:静态类可以有静态构造函数,静态构造函数不可继承;

2:静态构造函数可以用于静态类,也可用于非静态类;

3:静态构造函数无访问修饰符、无参数,只有一个 static 标志;

4:静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。

注意:

1:静态类在内存中是一直有位置的;

2:非静态类在实例化后是在内存中是独立的,它的变量不会重复,在使用后会及时销毁,所以不会出现未知的错误。在C#中静态成员是比较敏感的东西,在不是十分确认的情况下不要使用;

3:建议更多地使用一般类(非静态类)。

使用选择:

当定义的类不需要进行实例化时,我们使用静态类;如果需要实例化对象,需要继承等特性时,应该使用非静态类,并且将统一使用的变量和方法设为静态的,那么所有实例对象都能访问。

C# 静态成员和方法的学习小结

数据成员:

数据成员可以分静态变量、实例变量两种.

静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个共性的表现),他不依赖特定对象的存在,访问的时候通过类名加点操作符加变量名来访问.

实例成员:实例成员变量是和对象相关联的,访问实例成员变量依赖于实例的存在.

函数成员:

方法可以主要分为静态方法,实例方法

静态方法:静态方法是不属于特定对象的方法,静态方法可以访问静态成员变量,静态方法不可以直接访问实例变量,可以在实例函数调用的情况下,实例变 量做为参数传给静态方法。静态方法也不能直接调用实例方法,可以间接调用,首先要创建一个类的实例,然后通过这一特定对象来调用静态方法。

实例方法:一个实例方法的执行与特定对象关联,他的执行需要一个对象存在。实例方法可以直接访问静态变量和实例变量,实例方法可以直接访问实例方 法、和静态方法,静态方法的访问方式为类名加点操作符加变量名。当多个实例对象存在时,内存中并不是存在美个特定的实例方法的拷贝,而是,相同类的所有对 象都共享每个实例方法的一个拷贝(实例方法只占用“一套”空间)。

如果将类中的某个成员声明为static,则称该成员为静态成员。一般来说,静态成员是属于类所有的,而非静态成员则属于类的实例的。每创建一个类的实 例,都在内存中为非静态成员开辟一片区域。而类的静态成员为类所有,为这个类的所有实例共享。无论这个类创建了多少副本,一个静态成员在内存中只占有一块 区域。

C#类中静态成员变量的生命周期问题,就是什么时候创建,什么时候销毁已声明元素的“生存期”是元素可供使用的时间周期。变量是唯一具有生存期的元 素;为此,编译器将过程参数和函数返回值视为变量的特殊情况。变量的生存期表示它可以保留值的时间周期。在生存期内变量的值可以更改,但变量总是保留某些 值。

转:深入理解C# 静态类与非静态类、静态成员的区别

另外:

CLR不存在什么“静态区”,引用对象都是分配在托管堆上的,对象的静态成员分配在方法表后面。程序域装载的时候分配,程序域卸载的时候销毁。对于一般的桌面程序,程序域你可以简单理解为进程启动和关闭,但是对于http://ASP.NET或者别的单个进程托管了多程序域的情况,还是有区别的。

http://www.microsof

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值