为此,您不需要(或特别需要)jQuery(它对于许多其他事情非常有用,但不是特别适合这个)。直接 JavaScript 和 DOM:
var div = document.getElementById('block-id-45');
var n = div.id.lastIndexOf('-');
var target = div.id.substring(n + 1);
如果您已经在使用 jQuery,您可以将第一行替换为:
var div = $('#block-id-45')[0];
...但是几乎没有理由这样做。
由于您的函数看起来不需要返回任何值,因此您可以将每个 ID 键与调用您想要的方法的 Runnable
对象相关联。例如:
Map<Integer, Runnable> map = ...;
map.put(0, new Runnable() {
public void run() {
doSomeFunction();
}
});
map.get(0).run();
如果您需要方法能够返回值,则可以使用 Callable
而不是 Runnable
。您还可以创建自己的类似界面并在需要时使用它。
目前,在 Java 中,此类事情必须通过具有单个抽象方法(例如 Runnable)的类实例来完成。 Java 7 或 8(取决于他们决定如何继续)将添加 lambda 表达式和方法引用,我认为这是您真正想要的。方法引用将允许您执行类似的操作(使用 Map
就像上面一样)。
map.put(0, Foo#doSomeFunction());
编辑:
您的更新表明其中一些方法需要传递参数。但是,您似乎要求两件不同的事情。在声明映射的示例中,
0 -> doSomeFunction(argument);
1 -> doSomeOtherFunction();
2 -> doStuff(arg2);
指定了参数,表明它们是声明映射时可用的值,或者是类中的字段或类似字段。无论哪种情况,您都可以在创建 Runnable
时声明它们:
new Runnable() {
public void run() {
doSomeFunction(argument);
}
}
这里,argument
要么需要是一个字段,要么被声明为 final< /代码>。
另一方面,如果您在创建映射时没有对参数的引用,则必须创建一些所有方法调用都可以共享的一致接口。例如,适用于您的示例的最不常见的接口是声明两个参数和 void
返回的接口:
public interface CustomRunnable<T,G> {
public void run(T arg1, G arg2);
}
那么您可以:
map.put(0, new CustomRunnable<Foo,Bar>() {
public void run(Foo arg1, Bar arg2) {
doSomeFunction(arg1);
}
});
map.put(1, new CustomRunnable<Foo,Bar>() {
public void run(Foo arg1, Bar arg2) {
doSomeOtherFunction();
}
});
map.put(2, new CustomRunnable<Foo,Bar>() {
public void run(Foo arg1, Bar arg2) {
doStuff(arg2);
}
});
每个 CustomRunnable
仅使用参数它需要的,如果有的话。然后你可以像这样进行调用:
map.get(item.id).run(argument, arg2);
显然,这变得非常难看,但这几乎是你在这种情况下必须做的。
如果可行的话,最好激活某种结构分析来找到循环并打破僵局。
它可能会错过一些销毁时的死锁,但它也可能适用于捕获该上下文之外的死锁。
在 C 和 C++ 中,单引号标识单个字符,而双引号创建字符串文字。 'a'
是单个 a 字符文字,而 "a"
是包含 'a'
和空终止符(即是一个 2 个字符的数组)。
在 C++ 中,字符文字的类型是 char
,但请注意,在 C 中,字符文字的类型是 int
,即 sizeof 'a'<在整数为 32 位(CHAR_BIT 为 8)的体系结构中, /code> 为 4,而
sizeof(char)
在任何地方都为 1。
您的积分有效。
对于较小的应用程序,如果不需要所有附加功能,我会考虑在 ASP.NET 应用程序中使用 ReportViewer 控件。即使从维护的角度来看:您只需要管理一个应用程序。我的团队计划停止使用 SSRS。
我知道我们的一些姐妹团队有复杂的报告和结构,并且需要附加功能。
您不需要迭代事物,有一个名为 array_diff 的函数:
http://www.php.net/manual/en/function.array-diff.php
因此,创建两个逗号分隔列表的数组并使用 array_diff,得到的数组是这两个数组的差值。
在数据库中存储逗号分隔的列表不是一个好主意,因为它破坏了规范化。
我一直在使用几乎相同的设置,除了 vim,它是我从 Macports 获取的。几年前,我发现了 ir_black 并喜欢它。我现在将它用于所有 vim 会话、Terminal.app 和 TextMate。让它与 Leopard 一起工作,然后 Snow Leopard 就有点做作了。但情况已经有所改善。按照此处的说明操作,让 Terminal.app 在 Snow Leopard 中看起来很棒< /a>.
只需转到项目->项目属性
链接器->输入
在附加依赖项中添加 ws2_32.lib
链接器 -> 命令行在此处添加 ws2_32.lib
单击开始
函数名称开头不需要 $ 符号。
这样做:
function getUserName() {
return $this->userName;
}
从我的脑海中浮现出来,我敢打赌这是一个路径问题。您的包含与执行脚本相关,而不是包含的包含,如果这有意义的话。
我认为你的推理很好,我讨厌当我在 Visual Studio 中本地化异常并且无法找到帮助时,因为编程的通用语言是英语。
更一般地说,您不应该尝试遵守所有 fxcop 规则,这很快就会成为一种负担。最好专注于规则的子集。
我不认为您可以排除特定异常中的警告,但您可以使用 SuppressMessage
属性排除检测:
[SuppressMessage("Microsoft.Globalization",
"CA1303:DoNotPassLiteralsAsLocalizedParameters",
Justification="Exception are not localized")]
public bool IsPageAccessible(string url, string documentId) {
if (url == null) {
throw new ArgumentNullException("url", @"url must not be null, use string.Empty if you don't care what the url is.");
}
if (documentId == null) {
throw new ArgumentNullException("documentId", "documentId must not be null, use string.Empty if you don't care what the documentId is.");
}
return true;
}
另一种方法是编写 自定义 fxcop 规则 添加此行为。
我这样做的方式是 BO 期望一个 DataReader 或 DataContext 或从 DAL 返回的任何内容,而不是实际形成的对象。然后 BO 层的工作就是从返回的对象中获取并填充自身。 DAL 不会返回已完成的 BO。要记住的主要事情是,更改 BO 层中的某些内容不应导致 DAL 层出现问题,但更改 DAL 层中的某些内容可能会导致 BO 层出现问题。
执行的操作的简短示例
我通常在 BO 层中
在 DAL 中
The way the I do this is the BO expects a
DataReader
or aDataContext
or whatever back from the DAL, not the actual formed object. It is then the job of the BO layer to take and fill itself from the object that came back. The DAL isn't returning back a completed BO. The main thing to remember is that changing something in the BO layer shouldn't cause issues for the DAL layer, but changing something in the DAL layer could cause issues for the BO layer.A short example of what I typically do
In the BO layer
In the DAL
业务对象和数据层