问题列表 - 第9005页

如何安全地摆脱事件处理程序?

假设我有一个类A可以触发一个名为X的事件.现在我有一个B类,在一个方法中我得到一个实例到A并将事件绑定到B中的一个处理程序:

public void BindEvent(A a)
{
    a.X += AEventHandler;
}
Run Code Online (Sandbox Code Playgroud)

我有三个问题.

  • 当我现在将对B实例的引用设置为null时,它不会被垃圾收集,因为垃圾收集器认为它仍然在使用(因此在内存中保留了无用且可能干扰的B副本).

  • 当我有另一个对象c(C类)时,我有一个名为a的引用("this.a = new A()").然后我调用"b.BindEvent(this.a)",在c中我将a的引用设置为null("this.a = null").这会将A的副本保存在内存中,因为它是通过b中的事件引用的吗?

  • 如果其中任何一个或两个都是如此,我怎样才能最好地规避这些问题呢?如果我有一个事件处理程序的完整列表(比如"a.SomeEvent + = SomeMethod"这样的10行),我应该再次清理它们("a.SomeEvent - = SomeMethod").我应该在代码中的哪个时间或地点做这些事情?

嗯,它有点模糊,但我不知道如何以更好的方式解释.如果我需要解释更详细的内容,请发表评论.

c# events

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

是否可以仅使用 Windows API 将 UTF32 文本转换为 UTF16?

我试图找到单独使用 Windows API 可以将 UTF-32 文本与任何代码页相互转换。我无法使用 CLR 来完成此任务。

Microsoft 的代码页标识符页面 ( http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx ) 将 UTF-32 列为仅可用于托管应用程序。

使用 UTF-32 时 ConvertStringTo/FromUnicode 失败。

unicode visual-c++

6
推荐指数
2
解决办法
6233
查看次数

如何从Python运行"dot"作为命令?

我在Mac OSX Leopard上使用Python.

我试图从Python运行程序'dot'(Graphviz的一部分):

# -*- coding: utf-8 -*-
import os

print os.environ['PATH']
print os.system("ls >> a.txt")
print os.system("dot -o9.png -Tpng ./6.dot")
Run Code Online (Sandbox Code Playgroud)

命令"ls"只是为了确保python在正确的目录中.它是.我得到的结果是:

/ usr/bin:/ bin:/ usr/sbin:/ sbin 0 32512

我的理解是32512错误意味着python找不到文件,因为文件6.dot就在那里(如果我从终端运行"dot -o9.png -Tpng ./6.dot"我收到没有错误,和9.png得到),我假设Python找不到点文件.

我可能需要将点文件添加到路径中.但我不知道它在哪里.如果我跑:

whereis dot
Run Code Online (Sandbox Code Playgroud)

我没有回答.

我怎样才能找到点可执行文件?
或者,我可以将Python程序作为Python内部的命令运行吗?

python macos path dot graphviz

5
推荐指数
2
解决办法
7073
查看次数

简单的JavaScript添加问题

我不太喜欢JS,出于某种原因,当我尝试将两个字段添加到一起时,它会加入它们而不是将总和加在一起..这是我正在尝试使用的代码..

    function calculateTotal() {

        var postageVal = document.getElementById('postage').value; //$68.50
        var subtotalVal = document.getElementById('subtotal').value; //$378.00

        var postage = postageVal.substr(1); //68.50
        var subtotal = subtotalVal.substr(1); //378.00
        var totalVal = postage+subtotal;

        alert(postage);
        alert(subtotal);
        alert(totalVal);

    };
Run Code Online (Sandbox Code Playgroud)

totalVal回应/警告68.50378.00而不是将它们加在一起..有人可以告诉我哪里出错了吗?:(想法是用totalVal更新"总"文本字段,但我还没有那么远!

javascript math

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

JPA实体和Hibernate实体之间的区别

当我使用@Entity注释一个类并尝试解析依赖项时,我可以选择两个不同的包之间的包,javax.persistence.Entity和org.hibernate.annotations.Entity

javax包是JPA的实体注释,但为什么有一个hibernate实体注释,它与JPA的注释有什么区别?它只是一个允许定义更多属性的扩展吗?

java hibernate jpa

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

在python中找出类实例中可用的函数?

如何动态地找出从类的实例定义了哪些函数?

例如:

class A(object):
    def methodA(self, intA=1):
        pass

    def methodB(self, strB):
        pass

a = A()
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想找出实例'a'有methodA和methodB,以及它们采用哪些参数?

python introspection

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

SQL静态数据/查找列表IDENTIFIER

关于静态数据表设计.在表中显示静态数据:

  • 货币(代码,名称).行示例:美元,美元
  • 国家(代码,名称).行示例:DE,德国
  • XXXObjectType(代码,名称,...其他属性)
  • ...

将另一个(INTEGER)列作为主键是否有意义,以便所有外键引用都可以使用它?

可能的解决方案:

  1. 使用额外的INTEGER作为PK和FK
  2. 使用代码(通常是CHAR(N),其中N很小)作为PK和FK
  3. 仅在小于一定尺寸时才使用代码......尺寸是多少?
  4. 其他 _______

你的建议是什么?为什么?

我通常使用INT IDENTITY列,但通常使用短代码足以在UI上向用户显示,在这种情况下查询将少一个JOIN.

sql sql-server static relational

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

我可以在intellisense中订购枚举值吗?

我有一个有5个成员的eum类型.有可能告诉intellisense以我想要的方式对它们进行排序吗?

public enum numbers
{
    zero,
    one,
    two,
    three,
    four
}
Run Code Online (Sandbox Code Playgroud)

Intelisense显示(在alpha中):

four
one
three
two
zero
Run Code Online (Sandbox Code Playgroud)

.net c# intellisense visual-studio-2005

20
推荐指数
3
解决办法
3005
查看次数

ASP.Net MVC将项目添加到绑定下拉列表

我的页面视图当前有一个下拉列表,它从控制器绑定到一个集合.这工作正常,但我想在下拉列表的顶部插入一个不在我的集合中的项目,例如列表当前获得以下项目

Open
Closed
Run Code Online (Sandbox Code Playgroud)

我想添加"All"的第三个选项,但我不想将此选项添加到我的数据库中.在Webforms中我会绑定控件然后插入另一个项目但是看起来这对MVC来说是不可能的,我是否正确地认为我需要在视图中添加一些Javascript以便在下拉列表绑定后添加这个新项目?

谢谢

c# asp.net-mvc drop-down-menu

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

如何测试线程安全性

您对如何测试多线程应用程序有什么建议吗?

我知道,线程错误很难捕获,它们可能随时发生 - 或者根本不发生.测试很困难,结果永远不会确定.当然最好仔细设计和编程并发模块.
尽管如此 - 我不想忽略测试方面.因此,运行大量同时处理相同项目的线程有时会调用线程错误.

任何想法或最佳实践,以获得隐藏线程错误的高命中率?
(我正在使用.Net/C#)

c# testing concurrency multithreading

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