背景: 我有一个简短的string列表。 string的数量并不总是相同的,但几乎总是“less数”的顺序, 在我们的数据库中将这些string存储在第二个规范化的表中 这些string写入数据库后永远不会更改。 我们希望能够在查询中快速匹配这些string,而无需进行大量的连接。 所以我正在考虑将所有这些string的哈希码存储在主表中,并将其包含在我们的索引中,因此只有在哈希码匹配时才能通过数据库处理联接。 那么如何获得一个好的散列码呢? 我可以: 将所有string的哈希码加在一起 XOR与每个string后面的结果相乘(用31表示) 把所有的string集合在一起,然后得到哈希码 其他方式 那么人们会怎么想呢? 最后,我只是连接string并计算连接的哈希码,因为它很简单,而且工作得很好。 (如果你在意我们正在使用.NET和SqlServer) Bug!,Bug! Eric Lippert 引用GetHashCode的指导原则和规则 System.String.GetHashCode的文档特别指出,两个相同的string可以在CLR的不同版本中具有不同的哈希代码,实际上它们的确可以。 不要在数据库中存储string散列,并期望它们永远是一样的,因为它们不会。 所以String.GetHashcode()不应该用于这个。
在Visual Studio 2008中,项目的目标框架设置是 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 但是,在Visual Studio 2010中它们是 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 .NET Framework 3.5客户端configuration文件 .NET Framework 4 .NET Framework 4客户端configuration文件 客户端configuration文件设置是什么意思? 编辑 多一点实验表明,使用MVC,WebForms和WCF项目,您不会获得“客户端configuration文件”选项。 在创buildWinForms和控制台应用程序时,默认的目标框架是.NET 4 Client Profile。 这是有道理的。
当我添加一个子视图到一个UIView ,或者当我调整现有的子视图,我期望[view sizeToFit]和[view sizeThatFits]来反映这种变化。 但是,我的经验是, sizeToFit什么都不做, sizeThatFits在更改前后返回相同的值。 我的testing项目有一个包含一个button的单一视图。 单击该button将向视图添加另一个button,然后在包含的视图上调用sizeToFit 。 在添加子视图之前和之后,视图边界被转储到控制台。 – (void) logSizes { NSLog(@"theView.bounds: %@", NSStringFromCGRect(theView.bounds)); NSLog(@"theView.sizeThatFits: %@", NSStringFromCGSize([theView sizeThatFits:CGSizeZero])); } – (void) buttonTouched { [self logSizes]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRectMake(10.0f, 100.0f, 400.0f, 600.0f); [theView addSubview:btn]; [theView sizeToFit]; [self performSelector:@selector(logSizes) withObject:nil afterDelay:1.0]; } 输出是: 2010-10-15 15:40:42.359 SizeToFit[14953:207] theView.bounds: {{0, […]
我正在寻找一种方法来获取n ++的在文件对话框中查找以排除某些文件… 到目前为止我发现的唯一参考是http://sourceforge.net/project/shownotes.php?release_id=536795&group_id=189927 ,但不幸的是,它不起作用。 我使用* [^ *。dll],我认为,search所有东西,但dll文件。 我该如何解决这个问题? 谢谢
ASP.NET MVC提供了select新创build视图所基于的“脚手架模板”的能力(添加视图>创build强types视图>脚手架模板)。 是否可以创build自己的脚手架模板? 如果是的话,怎么样?
有些人可能会认为,这是所有时代最不重要的问题的候选人。 然而,代码风格对我来说是一个非常重要的话题,我想确保我以可读的方式编写代码 – 对于我和大多数开发人员。 这就是为什么我想知道你们在哪里宣布你的内部类。 我遵循以下方法sortingscheme,因为它是相当普遍的: public void foo() { usedByFoo(); } private void usedByFoo() { } public void bar() { } 我从上到下排列它们,每一种方法都与使用的地方相近。 现在我可以用内部类来做同样的事情,像这样: class Outer { private Inner inner; private class Inner {}; public Outer() { } … } 我认为这是我遵循的最一致的风格,但我也经常看到人们在文件的顶部或底部声明所有的内部类。 鉴于我的订购方法,我应该遵循哪种风格? 什么是最常见的方式来做到这一点?
注释变得stream行。 Spring-3支持它们。 CDI很大程度上依赖于他们(我不能使用CDI和注释,对不对?) 我的问题是为什么 ? 我听到几个问题: “它有助于摆脱XML”。 但是,什么是坏的XML? 依赖性本质上是声明性的,而XML对于声明是非常好的(对于命令式编程来说非常糟糕)。 有了好的IDE(比如想法),编辑和validationXML非常容易,不是吗? “在许多情况下,每个接口只有一个实现”。 那不是真的! 几乎我的系统中的所有接口都有模拟testing的实现。 任何其他问题? 而现在我的XML的增加: 你可以在任何地方注入任何东西(不仅是有注释的代码) 我应该怎么做,如果我有一个接口的几个实现? 使用限定符? 但是这迫使我的class级知道需要什么样的注射。 这不利于devise。 基于XML的DI使我的代码变得清晰:每个类都不知道注入,所以我可以对它进行configuration并以任何方式进行unit testing。 你怎么看?
我发现jQuery UI中的图标对我的应用程序来说有点小。 调整.ui-icon的大小当然没有帮助,因为图像是从一个图像文件加载的,所以它只会显示其他图标的一部分。 有没有办法调整图标大小,而不必调整我想要使用的每个大小的图标图像文件?
Raymond Chen 在无 锁 algorithm 方面 做了大量的工作 。 除了InterlockedXxx函数的简单情况之外,似乎所有这些模式都是他们实现自己的锁 。 当然,没有处理器锁,但是为了确保一致性,在每个CPU上循环重复的概念非常像自旋锁。 作为自旋锁,它们将比操作系统附带的通用锁效率低,因为它们在等待其他线程时不会控制其量子块。 因此,当有人来找我说“但是我的algorithm是无锁的”时,我的总体回答是“如此”? 我很好奇 – 是否有基准显示locking自由algorithm有优势locking全面的对手?
我所知道的每个自由/开放源码软件项目都有规则来防止代码中的尾随空格。 但是我认为继续当前的缩进是非常自然的: int main() { ….int a = 42; …. ….return a; } 但是git反正会抛出警告。 所以我的问题是:为什么当前缩进内的那些标签不好? 我不是在寻找像“总是这样做”的答案。 让我们假设在整个项目中缩进是一致的。