遇到一个代码,并想知道为什么这个工作?
$.fn.appendVal = function(txt) { return this.each(function(){ this.value += txt; }); };
Run Code Online (Sandbox Code Playgroud)
与简单相反:
$('#sometextboxaspcontrol').value +=txt;
Run Code Online (Sandbox Code Playgroud)
顺便说一句.我知道'简单'没有,但为什么?
我正在为数据库应用程序编写第二个接口,以解决原始接口的一些缺点.不幸的是,如果我创建新记录,则不会生成预期的审计跟踪记录.如果数据库设计已经将这些细节用于表触发器,那么肯定会很好,或者为诸如将新记录插入这些表之类的操作提供存储过程API.
应用程序应该以这种方式设计吗?存储过程中应该有多少数据库应用程序?
我确定答案是显而易见的,我有点不好意思我已经不知道答案,但考虑一下我在阅读"Professional ASP.NET MVC 1.0"时选择的以下代码示例:
public static class ControllerHelpers
{
public static void AddRuleViolations(this ModelStateDictionary modelState, IEnumerable<RuleViolation> errors)
{
foreach (RuleViolation issue in errors)
modelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
我理解这个静态方法正在做什么,但我不明白的是"this"这个词在方法签名中的用途是什么.任何人都可以开导我吗?
不要被震惊.这是很多文字,但我害怕没有提供一些详细的信息,我无法真正展示这是什么(并可能得到很多答案,并没有真正解决我的问题).而这绝对不是一项任务(正如他的评论中有人可笑地声称的那样).
由于除非至少设置了一些先决条件,否则根本无法回答此问题,以下是先决条件:
此外,我们需要更好地定义"更好".必须考虑几个属性:
现在通过或多或少的操作码实际意味着我的例子.它可能看起来实际上设置了操作码的数量,因为每个操作需要一个操作码.然而,它并不那么容易.
你可以进行类似的操作
ADD R1, R2, R3
Run Code Online (Sandbox Code Playgroud)
添加R1和R2的值,将结果写入R3.现在考虑以下特殊情况:
ADD R1, R2, R2
ADD R1, 1, R1
Run Code Online (Sandbox Code Playgroud)
这些是您在许多应用程序中可以找到的常见操作.您可以使用现有的操作码来表达它们(除非您需要不同的操作码,因为最后一个操作码具有int值而不是寄存器).但是,您也可以为这些创建特殊的操作码:
ADD2 R1, R2
INC R1
Run Code Online (Sandbox Code Playgroud)
和之前一样.优势在哪里?ADD2只需要两个参数,而不是3个,INC甚至只需要一个参数.因此,这可以在磁盘和/或内存中更紧凑地编码.由于将任何一种形式转换为另一种形式也很容易,因此解码步骤可以在两种方式之间转换以表达这些语句.不过,我不确定这两种形式会影响执行速度.
现在让我们假设您有一个ADD_RRR(R表示寄存器)和一个LOAD来将数据加载到寄存器中.
LOAD value, R2
ADD_RRR R1, R2, R3
Run Code Online (Sandbox Code Playgroud)
您可以拥有这两个操作码并始终在整个代码中使用这样的构造...或者您可以将它们组合成一个名为ADD_RMR(M代表内存)的新操作码
ADD_RMR R1, value, R3
Run Code Online (Sandbox Code Playgroud)
假设您有16位整数和32位整数作为本机类型.寄存器为32位,因此数据类型适合.现在,当您添加两个寄存器时,可以将数据类型设为参数:
ADD int16, R1, R2, R3
ADD int32, R1, R2, R3
Run Code Online (Sandbox Code Playgroud)
例如,对于有符号和无符号整数也是如此.这样,ADD可以是一个短操作码,一个字节,然后你有另一个字节(或者可能只是4位)告诉VM如何解释寄存器(它们是否保持16位或32位值).或者您可以废弃类型编码,而是有两个操作码:
ADD16 R1, R2, R3
ADD32 R1, R2, R3
Run Code Online (Sandbox Code Playgroud)
有些人可能会说两者完全相同 - 只是解释第一种方式,因为16位操作码可行.是的,但是一个非常幼稚的翻译可能看起来很不一样.例如,如果每个操作码有一个函数并使用switch语句调度(不是最好的方式,函数调用开销,switch语句也许不是最优的,我知道),这两个操作码可能如下所示:
case ADD16: add16(p1, p2, …Run Code Online (Sandbox Code Playgroud) 我目前正在ASP.NET Webforms中开发一个站点.
我正在缓存它所做的事情...使用高/正常/低优先级添加东西..告诉他们留在缓存中2周,1周,4小时可敬
我在每个页面上显示当前缓存项目的数量(出于调试原因).
有时,如果我快速浏览网站,缓存中的项目数量可以达到2000项...但如果我等待5分钟并刷新页面,缓存将减少到20项..(正好在该页面上缓存的内容) )
有什么方法可以找到我们正在发生的事情吗?这是否有原因让我失踪?
我正在运行Win7,4Gb ram,64位,VS10,.net4,
我有4个ram的演出,为什么我的缓存完全空了?
我会说10%的缓存项目大约是4k,其余的将是大约100个字符长的字符串.
编辑:我正在使用Sliding Expiration
编辑:我把它整理出来,有一两件物品非常大而且它们被设置为高优先级..而且其他一些较小的变化解决了我的问题.
为什么你认为下面的代码不起作用?你会改变/添加什么使它工作?
任何帮助表示赞赏..
function TraceIt(message:String, num:int)
{
trace(message, num);
}
function aa(f:Function, ...args):void
{
bb(f, args);
}
aa(TraceIt, "test", 1);
var func:Function = null;
var argum:Array = null;
function bb(f:Function, ...args):void
{
func = f;
argum = args;
exec();
}
function exec()
{
func.apply(null, argum);
}
Run Code Online (Sandbox Code Playgroud)
我得到一个ArgumentError(错误#1063):
Argument count mismatch on test_fla::MainTimeline/TraceIt(). Expected 2, got 1.
Run Code Online (Sandbox Code Playgroud)
..因此,传递的参数(argum)无法提供所有传递的参数.
..请保持功能结构(流量)完整.我需要一个使用相同函数的解决方案.我必须将args传递给变量并在上面的exec()方法中使用它们.
问候
到目前为止,我已经能够在C中创建一个窗口,并在该窗口中添加一个按钮和编辑框.但是,我在哪里可以找到所有表单控件的系统类的详尽列表?我不记得我在哪里找到了BUTTON和EDIT - 是否有标签?列表框?复选框?组合框?等等
然后,我将如何使用内置的Windows函数...我认为它们被称为常用控件?喜欢打开文件,另存为,打印等.
在一组大文件中,我需要\用" \\" 替换所有出现的" ".我想将Perl用于此目的.现在,我有以下内容:
perl -spi.bak -e '/s/\\/\\\\/gm' inputFile
Run Code Online (Sandbox Code Playgroud)
我向你建议了这个命令,但是它导致inputFile没有变化(更新的时间戳除外).考虑到问题可能是\"s"没有被空白包围,我试过了
perl -spi.bak -e '/s/.\\./\\\\/gm' inputFile
Run Code Online (Sandbox Code Playgroud)
同样,这对文件没有影响.最后,我以为我可能会丢失一个分号,所以我尝试了:
perl -spi.bak -e '/s/.\\./\\\\/gm;' inputFile
Run Code Online (Sandbox Code Playgroud)
这也没有效果.我知道我的文件包含" \",例如在以下行中:
("C:\WINDOWS\system32\iac25_32.ax","Indeo audio)
Run Code Online (Sandbox Code Playgroud)
我不确定正则表达式是否存在问题,或者我调用Perl的方式是否有问题.我对正则表达式有基本的了解,但对于Perl来说,我是一个绝对的初学者.
这里有什么明显的错误吗?我注意到的一件事是命令返回得很快,尽管inputFile的大小约为10MB.
假设我们有这两个类:
public class Derived : Base
{
public Derived(string s)
: base(s)
{ }
}
public class Base
{
protected Base(string s)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能从内部的构造函数中找出Base那Derived是调用?这就是我想出的:
public class Derived : Base
{
public Derived(string s)
: base(typeof(Derived), s)
{ }
}
public class Base
{
protected Base(Type type, string s)
{
}
}
Run Code Online (Sandbox Code Playgroud)
还有另一种不需要传递的方法typeof(Derived),例如,某种方式在Base构造函数中使用反射吗?
我有一个datagridview,它填充了linq查询返回的数据.如果查询没有返回任何结果,我想显示一个消息框.有没有办法检查datagridview是否为空?
问候
c# ×3
.net ×1
architecture ×1
arguments ×1
asp.net ×1
c ×1
caching ×1
controls ×1
datagridview ×1
function ×1
inheritance ×1
interpreter ×1
jquery ×1
opcode ×1
performance ×1
perl ×1
rdbms ×1
reflection ×1
regex ×1
types ×1
webforms ×1
winapi ×1
winforms ×1