问题列表 - 第36096页

编写我们自己的Dispose方法而不是使用Idisposable

经过很多Idisposable的文章后,我对它的用法感到困惑.所有文章都解释了它是什么以及如何实现.如果我们没有,我想了解我们会想念的内容.它是一个接口,其中包含一个方法Dispose().让我们举一个例子通常使用dispose显示为处理数据库连接.

代码就像

public class Test : IDisposable
{
    public Test()
    {
        DatabaseConnection databaseConnection = new DatabaseConnection();
    }

    public void Dispose()
    {
        if (this.databaseConnection != null)
        {
            this.databaseConnection.Dispose();
            this.databaseConnection = null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

尽管配置已实现但是在dispose方法中,databaseconnection的dispose属性用于释放连接(this.databaseConnection.Dispose();)

我的问题是为什么在这种情况下我们需要实现IDisposable? 我们可以直接调用this.databaseConnection.Dispose()并释放连接.为什么在内部实现dispose也调用对象的dispose属性.作为Idisposable方法的替代方案,我们可以实现释放方法以释放内存.

public class Test
{
    public Test()
    {
        DatabaseConnection databaseConnection = new DatabaseConnection();
    }

    public void Release()
    {
        if (this.databaseConnection != null)
        {
            this.databaseConnection.Dispose();
            this.databaseConnection = null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么不同?我们真的需要Idisposable吗?我期待着一个具体的解释.

c# idisposable

8
推荐指数
1
解决办法
2266
查看次数

php邮件功能:通过gmail和hotmail标记为垃圾邮件的合法邮件

我的网站使用PHP邮件功能向用户发送电子邮件.Hotmail和Gmail用户不会收到它们,或者它们最终会进入垃圾邮件文件夹.以下是Gmail标记为垃圾邮件的邮件标题.

该怎么办?

Delivered-To: koopter1982@gmail.com
Received: by 10.216.213.222 with SMTP id a72cs207473wep;
        Sat, 2 Oct 2010 04:26:47 -0700 (PDT)
Received: by 10.216.3.19 with SMTP id 19mr3099233weg.108.1286018806068;
        Sat, 02 Oct 2010 04:26:46 -0700 (PDT)
Return-Path: <admin@drt01.dco.fusa.be>
Received: from drt01.dco.fusa.be (drt01.dco.fusa.be [193.110.251.55])
        by mx.google.com with ESMTP id m29si2837219weq.203.2010.10.02.04.26.45;
        Sat, 02 Oct 2010 04:26:46 -0700 (PDT)
Received-SPF: pass (google.com: best guess record for domain of admin@drt01.dco.fusa.be designates 193.110.251.55 as permitted sender) client-ip=193.110.251.55;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of admin@drt01.dco.fusa.be designates …
Run Code Online (Sandbox Code Playgroud)

php email gmail spam

6
推荐指数
1
解决办法
8973
查看次数

Jquery对话问题

大家好我正在开发一个MVC应用程序,我想使用Jquery对话框.我有以下场景:我有Telerik树视图,当我点击任何节点时,我希望打开对话框并显示有关此节点的信息.首先,我添加以下脚本来初始化对话框:

    $(document).ready(function () {
        $("#dialog").dialog("destroy");
        $("#dialog-form").dialog({
            autoOpen: false,
            height: 500,
            width: 500,
            modal: true,
            buttons: {
                Cancel: function () {
                    $(this).dialog('close');
                }
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

然后在OnSelect中编写以下代码(Telerik的客户端事件)

        $('#dialog-form').dialog('open');
        $('#dialog-form').load('<%= Url.Action("SomeAction", "SomeController") %>');
Run Code Online (Sandbox Code Playgroud)

在我的母版页中,我添加了使模态工作所需的脚本文件,如下所示:

<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.dialog.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.core.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.widget.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.button.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.draggable.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.position.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery.ui.resizable.js") %>"></script>
Run Code Online (Sandbox Code Playgroud)

当我点击树的节点没有发生任何事情时,chrome开发人员工具显示以下错误:

未捕获的TypeError:对象#没有方法'对话'

似乎脚本注册有错误或类似的东西

对此有任何帮助

jquery-plugins

3
推荐指数
1
解决办法
2万
查看次数

git svn网守仓库

我现在已经使用git很长一段时间了,主要是git-svn.现在我想说服我的同事从svn切换到git.但不幸的是,前提条件是svn存储库保持相当长的一段时间.所以我搜索了一个解决方案并提出了这本书:

Jon Loeliger的"使用Git进行版本控制".我买了它,它真的很好,但我不完全理解设置git svn看门人回购的指南.

在第16章中,他描述了一种情况,其中有一个Subversion存储库,至少有几个用户想要使用Git.他提出了一个单独的"看门人"git存储库,它是subversion的唯一接口.在git svn克隆了subversion repo(使用--prefix = svn /)后,所有分支都被推送到裸存储库(git push ../svn-bare.git'refs/remotes/svn/:refs/heads/svn / '和其他git用户被告知要克隆这个repo,它现在包含所有svn遥控器的本地分支.

这部分有效,我想我完全理解它.但我没有得到下一部分:

如果一个克隆裸存储库的开发人员将更改从他的repo推回到裸存储库,然后我在svn的裸存储库中提交这个,那么用户推送的提交由于git-svn创建的被替换的提交而有充分理由丢失.还是我错了?这是如何运作的?

这本书说

然后,要合并回subversion,在网守回购中,你做

git checkout svn/trunk(或其他分支 - 这是检查一个分离的头,因为svn/trunk是一个远程)git merge --no-ff new-feature git svn dcommit

如何在裸存储库中签出分支?我觉得这不行

这导致在分离的头上进行合并提交,然后将修改后的提交(在添加git-svn-id行之后)放在真正的svn/trunk分支上.

什么是真正的svn/trunk?

分离头上的提交"比冗余更糟糕.将其用于其他任何事情最终都会导致冲突.所以,只要忘记提交.如果你没有把它放在分支上,那就更容易了忘了"(Jon Loeliger).

我有点困惑.有人为创建一个git svn网守回购有更好的解释吗?我搜索过网站和这个网站,但我找不到任何适合我的网站.

在与同事合作时,我已经厌倦了浪费这么多时间与svn分支和融合.

svn git git-svn

15
推荐指数
2
解决办法
2584
查看次数

那么现在struct可以有虚函数和支持继承吗?那么班级有什么不同?信息隐藏的真正目的是什么?

可能重复:
C++中struct和class之间有什么区别

http://www.cplusplus.com/reference/std/typeinfo/type_info/

我想我的"老师"并没有告诉我很多关于C++中struct和classes之间的区别.

我在其他一些问题中读到有关继承的问题,结构默认是公共的...我也猜测struct没有构造函数/析构函数...

那么其他的差异呢?他们这么重要吗?

在谈到私有/受保护的属性/方法时,它们在运行时是不可访问的,只是因为编译器在编译时告诉它并报告错误,对吧?然后将这些功能与类进行比较,"信息隐藏"真正为程序员带来了什么?是否在这里,当有人重用该类时,这个人不会滥用该类,因为编译器会报告私有/受保护的东西?

我仍然为信息隐藏的真正目的而苦苦挣扎,它仍然希望在我的脑海中发出声音,因为它为程序带来更多安全性,意味着更少的安全漏洞,但我真的很困惑这种设计在语言中的目标...... (而且我不打算以任何方式反对C++,我只是想了解在什么情况下这个功能可能有趣或不;如果不是,那不是问题,但我只是想知道...).

c++ inheritance struct information-hiding class

7
推荐指数
1
解决办法
1万
查看次数

获取与facebook同步的联系人照片

我试图在我的应用程序中显示联系人图片,但我正在获取那些仅手动添加的图片而不是与facebook同步的图片.如何解决这个问题?这是我的代码如下:

Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(PhotoId));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
return BitmapFactory.decodeStream(input);
Run Code Online (Sandbox Code Playgroud)

android facebook sync image contacts

7
推荐指数
1
解决办法
6968
查看次数

C#:如何在BackgroundWorker进度报告回调中解决"Collection was modified"?

我已经使用了BackgroundWorkers了,但我以前从未遇到过这个问题.我的程序分析逻辑分析仪的输出,产生数据包,其中有数千个.为了防止更新延迟更新我的表单中的ListView(我之前报告了每个发现的,并且表单完全没有响应)我正在收集通用列表(List <Packet>)中的BackgroundWorker内的数据包和然后报告当找到n量(当前为250),或者发生异常时,或者当它完成时.

当我在List <Packet>上进行迭代时,问题发生在我的回调中,我得到一个InvalidOperationException,其中包含"Collection was modified"错误.我没有触及foreach中的集合(我正在添加到另一个集合中,但我认为没有理由可以修改我正在迭代的集合 - 再加上评论它不能解决问题.)我是甚至尝试锁定e.UserState,将e.UserState存储到本地作用域List <Packet>并锁定,似乎没有任何作用.

这是我的回调方法的代码:

void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    progressBar.Value = e.ProgressPercentage;
    packetsListView.SuspendLayout();
    lock ((List<Packet>)e.UserState)
    {
        foreach (Packet packet in (List<Packet>)e.UserState)
        {
            packets.Add(packet);
            ListViewItem item = new ListViewItem(string.Format("{0}ns", Math.Round(packet.StartSampleNumber * 41.666667)));
            item.Tag = packet;
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, packet.Description));
            packetsListView.Items.Add(item);
        }
    }
    packetsListView.ResumeLayout();

    statusLabel.Text = string.Format("Analyzing...found {0} {1}", packetsListView.Items.Count, packetsListView.Items.Count == 1 ? "packet" : "packets");
}
Run Code Online (Sandbox Code Playgroud)

c# collections multithreading generic-list backgroundworker

0
推荐指数
1
解决办法
1033
查看次数

Django:request.GET和KeyError

码:

# it's an ajax request, so parameters are passed via GET method
def my_view(request):
    my_param = request.GET['param'] // should I check for KeyError exception?
Run Code Online (Sandbox Code Playgroud)

在PHP框架中,我通常必须检查存在的参数,如果不存在,则将用户重定向到某个地方.但在Django中,未出现的参数会导致500错误页面并且似乎需要行为.那么按原样保留代码还是有更好的实践可以吗?我应该总是使用像/ myaction/paramvalue /而不是/ myaction传递的标准参数吗?param_name = param_value(为ajax请求构建这样的URL有点困难)?

python django django-urls

22
推荐指数
2
解决办法
2万
查看次数

如何使用"\ a"转义字符产生哔声?

如果我编写以下程序,则运行代码时不会发出蜂鸣声.

#include <stdio.h>
int main()
{ 
    printf("\a");
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何\a使用C程序产生哔声吗?

c

11
推荐指数
1
解决办法
5万
查看次数

使用JavaScript更改正文的尺寸

如何在加载内容后更改body元素的尺寸(宽度,高度)?

限制:

  • 仅定位WebKit浏览器
  • 不能使用像JQuery这样的框架
  • 无法更改原始HTML文件; 只在加载内容后才执行JavaScript.

html javascript webkit

3
推荐指数
1
解决办法
6253
查看次数