问题列表 - 第2599页

如何正确取消注册事件处理程序

在代码审查中,我偶然发现了这个(简化的)代码片段以取消注册事件处理程序:

 Fire -= new MyDelegate(OnFire);
Run Code Online (Sandbox Code Playgroud)

我认为这不会取消注册事件处理程序,因为它创建了一个之前从未注册过的新委托.但是搜索MSDN我发现了几个使用这个习惯用法的代码示例.

所以我开始了一个实验:

internal class Program
{
    public delegate void MyDelegate(string msg);
    public static event MyDelegate Fire;

    private static void Main(string[] args)
    {
        Fire += new MyDelegate(OnFire);
        Fire += new MyDelegate(OnFire);
        Fire("Hello 1");
        Fire -= new MyDelegate(OnFire);
        Fire("Hello 2");
        Fire -= new MyDelegate(OnFire);
        Fire("Hello 3");
    }

    private static void OnFire(string msg)
    {
        Console.WriteLine("OnFire: {0}", msg);
    }

}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,发生了以下情况:

  1. Fire("Hello 1"); 按预期产生了两条消息.
  2. Fire("Hello 2");制作了一条消息!
    这使我确信取消注册的new代表工作!
  3. Fire("Hello 3");扔了一个NullReferenceException.
    调试代码显示Firenull …

.net c# events delegates

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

Flex:防止滚动条在自动显示时覆盖内容

我在Flex中有一个画布,只能在垂直方向滚动,所以我按如下方式设置画布的属性:

verticalScrollPolicy="auto" horizontalScrollPolicy="off"
Run Code Online (Sandbox Code Playgroud)

这里的问题是垂直滚动条在出现时覆盖了内容 - 尽管有足够的水平空间.我原本预计内容大小会自动调整.

将垂直滚动策略设置为"on"时,也不会覆盖任何内容.

如果我将两个滚动策略都设置为'auto',我还会得到一个水平滚动条,只是滚动到垂直滚动条覆盖的区域.

当显示垂直滚动条以便它不覆盖任何内容时,是否有一种解决方法可以重新布局画布的内容?

apache-flex scrollbar

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

如何最好地将我的应用程序与不可靠的数据库隔离?

我有一个 Java SOAP 数据服务,它位于 Sybase 数据库之上,由于我无法控制的原因,该数据库的性能不可靠。该数据库是供应商包的一部分,已由内部团队修改,大多数问题是由一天中某些时间的响应时间缓慢引起的。

SOAP 服务向计算网格提供数据,当我请求数据时,我需要响应时间既快又一致。该服务提供基本的CRUD功能,但读写比例约为100:1。

将自己与数据库不可靠的性能隔离开来并确保 SOAP 服务快速可靠的最佳策略是什么?

java database sybase soap reliability

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

Web服务变量在Web服务的生命周期内共享?

如何在Web服务的整个生命周期内使变量(对象)可用?

静态变量似乎工作,但还有另一种方法吗?

c# web-services .net-2.0 c#-2.0

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

Spring Integration作为独立ESB的嵌入式替代方案

有没有人将Spring Integration项目作为嵌入式ESB 的经验?

我在这样的用例中非常有趣:

  • 按计划从目录中读取文件
  • 从JDBC数据源获取数据
  • 模块化和即时启动/停止/重新部署模块的可能性(例如,一个模块可以按计划扫描目录,另一个来自jdbc数据源的调用查询等)
  • 重复/重试政策

更新:

除了"从JDBC数据源获取数据"之外,我找到了所有问题的答案.技术上可行吗?

soa spring esb jdbc spring-integration

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

用Javascript更改元素的onfocus处理程序?

我有一个表单,其默认值描述了应该进入该字段的内容(替换标签).当用户聚焦字段时,会调用此函数:

function clear_input(element)
{
    element.value = "";
    element.onfocus = null;
}
Run Code Online (Sandbox Code Playgroud)

onfocus设置为null,这样如果用户在字段中放入某些内容并决定更改它,则不会删除它们的输入(因此它只会擦除一次).现在,如果用户移动到下一个字段而不输入任何数据,则使用此函数恢复默认值(称为onblur):

function restore_default(element)
{
    if(element.value == '')
    {
        element.value = element.name.substring(0, 1).toUpperCase()
                          + element.name.substring(1, element.name.length);
    }
}
Run Code Online (Sandbox Code Playgroud)

事实上,默认值是元素的名称,因此我只是操纵了name属性而不是添加ID.问题是,如果它们跳过元素,则onfocus事件将使用clear_input无效,但之后永远不会恢复.

我补充道

element.onfocus = "javascript:clear_input(this);";
Run Code Online (Sandbox Code Playgroud)

在restore_default函数中,但不起作用.我该怎么做呢?

javascript onfocus onblur

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

一个伟大的SQL开发人员的迹象

基于他们的工作,您如何区分出优秀的SQL开发人员?

示例可能包括:

很少使用CURSOR,并试图将它们重构.
很少使用临时表,并试图将它们重构.
可以放心地处理OUTER JOIN中的NULL值.
避免未广泛实现的SQL扩展.知道如何优雅地缩进.

sql

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

我在哪里可以下载JSTL jar

有谁知道,因为我尝试的所有地方似乎都超时了!

java jsp jstl java-ee

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

适用于PHP的健壮且成熟的HTML解析器

是否有适用于PHP的强大而成熟的HTML解析器?快速浏览PEAR并没有改变任何东西(很多类用于生成HTML,而不是用于消费),Google教会了我很多人已经开始然后放弃了各种解析器项目.

对XML解析器不感兴趣(除非那时可以使用非格式良好的HTML)或者使用正则表达式自己攻击它.

澄清意图:我对HTML内容的过滤不感兴趣,我很有兴趣从HTML文档中提取信息.

html php html-parsing

139
推荐指数
0
解决办法
5万
查看次数

SimpleXML还是XMLReader?

哪两个更传播?我想从http://freshmeat.net/projects-xml/mysql/mysql.xml?branch_id=46519读出版本号,但我想使用更多人拥有的版本号.

如果您知道从mysql获取最新稳定版本号的另一种方法请告诉我;)

php xml

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