首页 新闻 会员 周边

請問一下「~RepositoryBase()」的意思

0
悬赏园豆:10 [待解决问题]

http://www.cnblogs.com/mzwhj/archive/2012/10/22/2720089.html

/// <summary>
        /// 查找指定值【继承类重写后才能正常使用】
        /// </summary>
        public virtual TModel Find(int Id) { return default(TModel); }
        ~RepositoryBase()
        {
            if (dbContext != null)
            {
                dbContext.Dispose();
            }
        }

這個「~RepositoryBase()」是什麼

為什麼要加這個「~」

是什麼意思??

jgedean的主页 jgedean | 初学一级 | 园豆:192
提问于:2014-09-11 17:24
< >
分享
所有回答(1)
0

析构函数,当一个对象被销毁的时候执行。

1、对象必须是通过new的方式构建的

2、必须显式的调用delete执行析构

519740105 | 园豆:5810 (大侠五级) | 2014-09-11 17:47

显式的调用delete???

应该是dispose吧!

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-11 17:53

@Alex_QY1987: 

对C++好久没接触了,那还是很多年前的事情了,我想C++的这个语法思想应该是不会变的。

 

RepositoryBase *repository = new RepositoryBase();

delete repository;

 

delete的对象一定要是new的,比如:

RepositoryBase repository;

RepositoryBase *p;

p = &repository;

delete p;//这个是不允许的。

 

至于dispose,这个貌似是.net里的,c++里是否有不确认。

 

另外:你对析构函数都不认识~~~?建议你多强化下C++基础。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-09-11 17:58

@519740105: 楼主说的应该是C#。dbContext.Dispose();看这就知道了。

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-09-11 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册