假设我有一个类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").我应该在代码中的哪个时间或地点做这些事情?
嗯,它有点模糊,但我不知道如何以更好的方式解释.如果我需要解释更详细的内容,请发表评论.
我试图找到单独使用 Windows API 可以将 UTF-32 文本与任何代码页相互转换。我无法使用 CLR 来完成此任务。
Microsoft 的代码页标识符页面 ( http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx ) 将 UTF-32 列为仅可用于托管应用程序。
使用 UTF-32 时 ConvertStringTo/FromUnicode 失败。
我在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内部的命令运行吗?
我不太喜欢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更新"总"文本字段,但我还没有那么远!
当我使用@Entity注释一个类并尝试解析依赖项时,我可以选择两个不同的包之间的包,javax.persistence.Entity和org.hibernate.annotations.Entity
javax包是JPA的实体注释,但为什么有一个hibernate实体注释,它与JPA的注释有什么区别?它只是一个允许定义更多属性的扩展吗?
如何动态地找出从类的实例定义了哪些函数?
例如:
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,以及它们采用哪些参数?
关于静态数据表设计.在表中显示静态数据:
将另一个(INTEGER)列作为主键是否有意义,以便所有外键引用都可以使用它?
可能的解决方案:
_______
你的建议是什么?为什么?
我通常使用INT IDENTITY
列,但通常使用短代码足以在UI上向用户显示,在这种情况下查询将少一个JOIN.
我有一个有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) 我的页面视图当前有一个下拉列表,它从控制器绑定到一个集合.这工作正常,但我想在下拉列表的顶部插入一个不在我的集合中的项目,例如列表当前获得以下项目
Open
Closed
Run Code Online (Sandbox Code Playgroud)
我想添加"All"的第三个选项,但我不想将此选项添加到我的数据库中.在Webforms中我会绑定控件然后插入另一个项目但是看起来这对MVC来说是不可能的,我是否正确地认为我需要在视图中添加一些Javascript以便在下拉列表绑定后添加这个新项目?
谢谢
您对如何测试多线程应用程序有什么建议吗?
我知道,线程错误很难捕获,它们可能随时发生 - 或者根本不发生.测试很困难,结果永远不会确定.当然最好仔细设计和编程并发模块.
尽管如此 - 我不想忽略测试方面.因此,运行大量同时处理相同项目的线程有时会调用线程错误.
任何想法或最佳实践,以获得隐藏线程错误的高命中率?
(我正在使用.Net/C#)
c# ×4
python ×2
.net ×1
asp.net-mvc ×1
concurrency ×1
dot ×1
events ×1
graphviz ×1
hibernate ×1
intellisense ×1
java ×1
javascript ×1
jpa ×1
macos ×1
math ×1
path ×1
relational ×1
sql ×1
sql-server ×1
static ×1
testing ×1
unicode ×1
visual-c++ ×1