怀旧的Collections.unmodifiableMap(),我一直在实现IDictionary基于这个讨论的只读包装器,我的单元测试很快遇到了一个问题:
Assert.AreEqual (backingDictionary, readOnlyDictionary);
Run Code Online (Sandbox Code Playgroud)
即使键值对匹配,也会失败.我玩了一下,看起来至少(感谢Simonyi)
Assert.AreEquals (backingDictionary, new Dictionary<..> { /* same contents */ });
Run Code Online (Sandbox Code Playgroud)
确实过去了.
我刚刚看了一下通过Dictionary和IDictionary文档,并让我吃惊我找不到了Java的任何等同Map合约的两个Maps相等entrySet()s必须相等.(文档说Dictionary- 不 IDictionary - 覆盖Equals(),但不要说覆盖的内容.)
所以看起来C#中的键值相等是Dictionary具体类的属性,而不是IDictionary接口的属性.这是正确的吗?整个System.Collections框架通常是否正确?
如果是这样,我有兴趣阅读一些关于为什么MS选择这种方法的讨论 - 以及在C#中检查集合内容是否相同的首选方法.
最后,我不介意指向经过良好测试的ReadOnlyDictionary实现.:)
ETA:要明确,我不是在寻找关于如何测试我的实现的建议 - 这是相对微不足道的.我正在寻找有关这些测试应该强制执行的合同的指导.为什么呢.
ETA:伙计们,我知道 IDictionary是一个接口,我知道接口无法实现方法.在Java中也是如此.然而,Java Map接口记录了该方法的某些行为的期望equals().当然必须有.NET接口执行这样的操作,即使集合接口不在其中.
我正在尝试placeholder使用jQuery 动态更新文本字段的HTML5 属性.
$("textarea").attr("placeholder", "New placeholder text");
Run Code Online (Sandbox Code Playgroud)
从Firebug,我可以发现placeholder属性确实在变化.但是在渲染textarea元素中,它保持不变.有什么建议?
我创建了一个小型Silverlight 4.0/RIA Services应用程序并对其进行了测试.我在家里的机器上开发了应用程序,需要将它移动到工作中的生产域.我通过将其推送到源存储库然后将其克隆到工作中的开发机器来完成此操作.它在两个位置都没有错误地构建.
当我尝试在新位置进行调试时,会出现此问题.在域上下文的第一个'Load()'方法我得到以下错误:
The provided URI scheme 'file' is invalid expected 'http'
Run Code Online (Sandbox Code Playgroud)
我得到调试器试图使用基于文件的URI而不是HTTP URI运行.但为什么?我该如何解决?
搜索SO返回了一些关于无效URI方案的类似错误,但是没有它们帮助我解决了这个特定的问题.
谢谢,吉姆
我无法将屏幕分成4个宽度和高度为50%的div.获得50%的宽度并将它们漂浮在周围是没有问题的,但我怎样才能使每个高度达到屏幕的50%?
情况:我正在启动XCode,为iPhone创建一个新项目(查看应用程序)并将XIB文件加载到IB中.我操纵视图(添加带有字符串"hello"的标签),保存,构建,运行应用程序,一切都很好.现在我正在本地化XIB.我做什么:右键单击xib文件,添加所需的语言,之后,我的XCode中有两个XIB文件.看起来绝对完美,正如我的iPhone编程书("大书呆子牧场")中所示.我确实将两个XIB中的标签更改为另一个字符串,让我们说"早上好!".
问题:现在我清理并重建应用程序 - 但它始终显示旧的XIB文件,总是字符串"hello".即使我将iphone上的设置更改为其他语言,我仍然会显示"hello"字符串.但是我的xcode中不存在带有"hello"的XIB!
有什么提示吗?这让我发疯了 - 我只是希望我错过了一件简单的事情.
我正在使用XCode 3.2.3和SDK 4.0
非常感谢提前!
OpenSSL文档声明它可以安全地用于多线程应用程序,前提是至少设置了两个回调函数,locking_function和threadid_func ....
我编写了使用OpenSSL API的程序.而且,我知道如何使用pthreads.但是,OpenSSL文档是以手册的形式编写的,我无法看到在多线程应用程序中使用OpenSSL时我必须要做的一步一步的指导.
是否有关于使用OpenSSL和pthreads的教程?(我在网上搜索,但没有出现满意的结果.)
PS:我在Debian Lenny和Ubuntu Lucid/Maverick工作.
PS2: OpenSSL包含一个示例,但它开始时太复杂了.
在一个包含5百万行的表中,SELECT count(*) FROM table在MyISAM中会立即显示,但在InnoDB中需要几秒钟.
为什么这样?为什么他们不像MyISAM那样在InnoDB中优化计数?
谢谢.
今天我在VI中看到了一个简洁的复制功能,你可以在其中复制整行直到停止字符.
例如 if( copy == this );
使用VI,他可以复制括号内的所有内容.我想知道你是否可以用emacs做到这一点?(不使用ctrl + space并手动标记我要杀死的内容)
我最近一直在为我的HTML文档的body标签应用ID以允许更好的CSS控制(#9).最近我发现我可以通过将一个类应用于body标签来完成同样的事情.我想知道每个选择的正面和负面.如果我有多个页面,其中body标签具有相同的ID,那么使用类更好吗?你怎么看?为什么?
更新:类/ ID基本上是我打算用来向样式表标识应用样式表的页面或页面类型.例如,它是主页,联系页面,许多搜索结果页面之一,存档页面等?
我有一个表单是用户输入信息,然后我有一个PayPal按钮,一旦填写了字段,用户将点击.我遇到的问题是如何在点击paypal按钮时捕获用户信息,如果表格有action="http://paypl.com/something/something".
我是否必须将其设为2页进程 - 一个用于捕获用户信息,另一个用于用户单击paypal按钮?
顺便说一下 - 贝宝按钮指示用户到paypal.com实际付款.
html ×3
css ×2
.net ×1
button ×1
collections ×1
database ×1
emacs ×1
equality ×1
forms ×1
height ×1
html5 ×1
immutability ×1
innodb ×1
iphone ×1
java ×1
jquery ×1
localization ×1
markup ×1
mysql ×1
openssl ×1
paypal ×1
performance ×1
php ×1
placeholder ×1
pthreads ×1
reference ×1
semantics ×1
silverlight ×1
width ×1
xib ×1