最近在看DZ的.NET版本...看他里面用到了很多静态类...我的问题是...在一个项目中...应该怎样去控制静态类...或者说哪些地方可以用.哪些地方不能用..各位大牛...能否分享下在开发中的一些经验..
解决方案 »
- 数据库SQL题求答案
- 我想要的效果是做一个图片连接,图片的src是从数据库中image这个字段取得的!!,点这个图片的时候同时后面传一个id参数,应该怎么写??
- 怎么自动调节图片的大小
- 怎么删除已经填充的DATASET中的行,请高手指点儿这几行程序应怎么样儿写??
- 为什么CS文件中为什么引用 System.Data.sql
- asp.net 删除数据库数据时,在删除多个文件。
- 请教如何实现类似csdn中加入收藏家那个按钮的功能啊,用C#
- 程序做完后,如何编译
- 说config.weg有错:[No relevant source lines]
- 合作开发“通用论坛助手”,欢迎常上论坛及对.net编程有兴趣的朋友参加
- winform中开发控件的问题
- 所有开发.NET的程序员都来看看!
这种细节上的还是多google。这种问题讨论的太多了
问这问题也主要是想大牛们在项目中是怎么的去灵活用这个static的.有点迷茫.
问这问题也主要是想知道大牛们在项目中是怎么的去灵活用这个static的.有点迷茫.
使用静态方法变量的好处在于:一个是应用程序的生命周期、一个是应用程序域的生命周期。还是有一定的区别,最明显的static类不会像application那样大量的占据服务器资源。至于哪里可以用哪里不可以用,应该怎么用,这个就要根据具体的项目来说了。
{
public static string GetUserName(...);
}
在BLL中调用:
DAL.GetUserName();二、在DAL中使用实例方法,采用静态成员模式(或Singleton)通过实例来调用:
class DAL
{
public static readonly DAL dal = new DAL();
public string GetUserName(...);
}
在BLL中调用:
DAL.dal.GetUserName();三、在DAL中使用实例方法,每次调用之前先创建DAL对象的实例:
class DAL
{
public string GetUserName(...);
}
在BLL中调用:
DAL dal = new DAL();
dal.GetUserName();---------------------------------------------------------------开发方式一:我以为在一些情况下(比如 调用多个数据库、GetUserName(...)内部处理操作部分)会出现线程安全的嫌疑。这种开发方式不用New出对象,所以很普遍。开发方式二:应该多是应用在cs模式下,DAL在整个项目只会有一个对象存在,如果出现在B/S 我想不能兼容多种问题情况。而且也有线程安全的问题。开发方式三:应该是普遍使用的,能够兼容各种问题,也不会有线程不安全的嫌疑出现。特别说明一下:在MS的pet3.0以前的版本 都采用了方式二,而到pet3.0和以后的版本 都采用了方式三,而且特别在开发说明文档中明确的解释了一下。我想应该是从兼容性上考虑的,从性能上方式二并不比方式三真正的高多少。
我用了单例模式,操作数据库用的是C#3.5的Linq,这样就会只存在一个操作数据库的实例,但是问题来了,当偶然抛出一个操作数据库的异常之后,其他的的除了查询正常之外,update,insert,delete 操作都会抛出同样的异常,我还以为是服务器的配置问题呢郁闷,测试后估计是Linq在抛出异常之后它的状态会一直保持异常。后来全部改成new出一个实例,问题没有了。
慎用啊老兄
这个时候你就可以使用静态对象
Winform 或者aspx 的上层应用,基本是没有什么静态类的
非静态类可以直接调用静态类的(方法或者属性)等等。
静态类只能调用静态类的方法或者属性。