问题列表 - 第8261页

如何对内部使用计时器的类进行单元测试?

无论喜欢与否,偶尔你必须为内部使用计时器的类编写测试.

比如说一个类,它接收系统可用性的报告,并在系统停机时间过长时引发事件

public class SystemAvailabilityMonitor {
    public event Action SystemBecameUnavailable = delegate { };
    public event Action SystemBecameAvailable = delegate { };
    public void SystemUnavailable() {
        //..
    }
    public void SystemAvailable() {
        //..
    }
    public SystemAvailabilityMonitor(TimeSpan bufferBeforeRaisingEvent) {
        //..
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用了一些技巧(将这些作为答案发布)但我不知道其他人做了什么,因为我对我的任何一种方法都不满意.

.net testing unit-testing timer

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

我可以告诉Perl一些数据是不可变的,以加快速度吗?

Perl非常适合编写我通常需要做的字符串/文件解析程序.与C/C++/JAVA相比,我真正喜欢的是编写快速脚本和一次性代码所花费的时间.但是,我想学习如何加快速度.

例如,我想学习如何给Perl提供提示,以便它可以做出更好的决策 - 尤其是与字符串相关的事情.在我看来,Perl会在您执行任何操作时复制一个字符串,无论您是否真的稍后修改了该副本.这是设计的(我可以用一些魔法把它转走吗?)或者我在咆哮?

我真的想把一些字符串当作(const char *).我确信我们总是不需要所有的东西都是std :: string并且涉及到所有的包袱(让我们假设std :: string类似于Perl字符串).我可以给Perl提示在某些字符串上执行此操作吗?

我记得读过一些文章(请注释,如果你可以放置它),你可以暗示Perl你不会修改某些变量,因此它会删除额外的行李,如果你要修改它等等.

我相信Perl变量有两个内部指针指向同一个Perl变量 - 一个可以存储一个数字,另一个可以存储一个字符串(字符数组).我是否总能告诉Perl在整个过程中选择一个?我可以让Perl处理一些字符串,(const char *)以便它们不会标记修改它们所需的功能吗?

例如,我读到某处(也许是同一篇文章?)unpack()比substr()更快,因为substr()返回一个左值,所以你也可以对它进行操作.例如,如果我想用'ef'替换字符串的前两个字符,我可以写:

substr(string, 0, 2) = 'ef'; # string now begins with 'ef'
Run Code Online (Sandbox Code Playgroud)

因此,除非我使用substr()的这个特殊功能,我最好使用substr?

我一直在咆哮吗?

optimization perl

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

创建不受Windows任务栏影响的表单的正确方法是什么?

我将任务栏停靠在左侧,这会导致在任务栏下方打开许多窗口.

除了Manual之外,System.Windows.Form.FormStartPosition值都不考虑任务栏.这是设计的吗?这令人沮丧.我想要尊重操作系统应该强制执行的默认监视器和窗口位置值.

.net taskbar winforms

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

IE6 float <img>

有时在浮动的div.IE6不显示标签,但它确实正确地分隔图像,当您右键单击图像时,它会提供正确的大小和文件大小等细节.它只是不显示图像:

<div style="float:left">
    <img src="one.gif" />
</div>
<div style="float:left">
    <img src="two.gif" />
</div>
Run Code Online (Sandbox Code Playgroud)

这些图像不会显示在IE6中,而是显示在Firefox/Safari/etc中......解决方法是什么?

html css image internet-explorer-6

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

实体框架 - "全部"方法

所有的方法应该评估对列表中的所有元素的说法.它在常规Linq中运行正常,但是当我尝试将它与EF一起使用时,它会抛出一个错误(" 无法创建类型为'闭包类型'的常量值.此处仅支持基本类型(例如Int32,String和Guid)上下文. ")

例:

var myList = from person in entities.People
             where searchList.All(arg => arg == arg).ToList();
Run Code Online (Sandbox Code Playgroud)

(arg == arg这里只是为了说明我的问题)

在我的场景中,searchList是包含搜索项的列表,例如"John","Accounting","75".在我的EF查询中,我想检索人员中的所有记录,其中John,Accounting和75出现在某些指定的可搜索字段中.一个更现实的例子是这样的:

where SearchList.All((person.FirstName + " " + person.LastName + " " + person.DepartmentName + " " + person.Phone).Contains)
Run Code Online (Sandbox Code Playgroud)

第二个例子在内存中也适用于Linq,但EF不喜欢它.

请帮忙!我能做些什么才能让它发挥作用?

这是一个来自我的另一个问题的更具体的问题.

示例代码:

IEnumerable<string> searchList = ParseSearchText(searchText); //search text is broken into search tokens - each token is an element in searchList. For instance "John", "Sales", "654"

var peopleQuery = from person in entities.vSearchPeople
where …
Run Code Online (Sandbox Code Playgroud)

linq linq-to-entities entity-framework

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

有人可以解释这几行MSIL吗?

有人可以解释这几行MSIL吗?为什么它会将评估堆栈中的值移动到局部变量,只是立即将其移回并返回?

下面的MSIL代码加载一个参数(一个字符串),调用一个返回bool的方法,然后返回该bool值.我不明白为什么它调用stloc.0将方法的返回值存储在局部变量中,然后执行显式的无条件控制传输到下一个标记的行(似乎没必要),只是将值右移回到返回之前的评估堆栈.

.maxstack 1
.locals init ([0] bool CS$1$0000)
L_0000: nop
L_0001: ldarg.0
L_0002: call bool FuncNameNotImporant::MethodNameNotImporant(string)
L_0007: stloc.0 
L_0008: br.s L_000a
L_000a: ldloc.0 
L_000b: ret 
Run Code Online (Sandbox Code Playgroud)

我最好猜测它为什么这样做是为了确保评估堆栈上的值在返回之前实际上是一个布尔值.但我对明确跳到下一行是无能为力的; 我的意思是,不管怎样它不会去那里?该方法的C#源代码只有一行,它返回方法的结果.

stack branch cil local-variables typechecking

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

编写REGEX以匹配img标记的src,height和width属性

我正在尝试编写一个正则表达式来匹配图像标记上的src,width和height属性.宽度和高度是可选的.

我想出了以下内容:

(?:<img.*)(?<=src=")(?<src>([\w\s://?=&.]*)?)?(?:.*)(?<height>(?<=height=")\d*)?(?:.*)(?<width>(?<=width=")(\d*)?)?
Run Code Online (Sandbox Code Playgroud)

expresso显示这只匹配以下html片段的src位

<img src="myimage.jpg" height="20" />
<img src="anotherImage.gif" width="30"/>
Run Code Online (Sandbox Code Playgroud)

我希望我真的很亲密,有人在这里可以指出我做错了什么,我有一种感觉,我在角色之间的选择位(?:.*)我试过让它变得非贪婪而没有成功.任何指针?

regex

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

在iPhone设置应用程序中为滑块添加文本标签

将Settings.bundle配置为iPhone应用程序包的一部分时,向滑块(PSSliderSpecifier)添加最小和最大值图像是微不足道的,但不是简单的最大和最小文本标签.

http://developer.apple.com/iPhone/library/documentation/PreferenceSettings/Conceptual/SettingsApplicationSchemaReference/Articles/PSSliderSpecifier.html

iPhone大师:有没有人知道一种简单的方法将文本标签应用于这些滑块以便在Settings应用程序中使用(因此,没有滑块子类化shenanigans;这一切都必须通过plist完成)?我想我可以使用标签的图像,但是......呃.

如果有某种方式以某种数字格式显示滑块的当前值,则可以获得奖励积分.

iphone settings cocoa-touch objective-c

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

ASP.NET MVC中的LinkBut​​ton

我需要将一些ASP LinkBut​​tons实例化到ASP.NET MVC视图页面上.我尝试了一些东西,但我不能让它们出来.这是我最近的代码化身:aspx文件

<body>
<% using (Html.BeginForm("TitleDetail", "Movies", FormMethod.Post, new{runat="server"})) { %> 

    <ul>
    <% foreach (var disc in Model.Title.tblDiscs) %>
    <% { %>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>
    <% } %>
    </ul>
<% } %> 
</body>
Run Code Online (Sandbox Code Playgroud)

它在Firefox中呈现的是我正在枚举的集合中每个成员的文本链接的一个实例,但它们不是超链接,只是文本.生成的HTML看起来像这样

<form action="/MyMovies/TitleDetail/239" method="post" runat="server">test title <br />

   <ul>
        <li>

            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>

        </li>

    </ul>
Run Code Online (Sandbox Code Playgroud)

我尝试在每个asp:LinkBut​​ton标记中添加一个runat ="server"属性,但我得到一个运行时异常,控件只能放在带有runat ="server"属性的表单标记内.我认为我已经做过了,所以我真的不明白.任何人都可以向我解释我做错了什么,以及我需要做些什么来修复它以便LinkBut​​tons实际上是链接的?

asp.net-mvc webforms asplinkbutton runatserver

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

是否有一个属性我可以放在A标签上以获取在新标签而不是同一窗口中打开的链接?

我知道target ="_ blank"应该在新窗口中打开这个东西,对于某些浏览器,比如FF3,它实际上会在新的选项卡中打开它.作为开发人员,有没有办法对这种行为进行更多控制?

html browser tabs

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