如果将无效值传递给属性setter并且ArgumentException抛出(或者从它派生的类的可能性),那么应该为paramName参数分配什么值?
value,因为它似乎是实际的论点?
传递财产的名称不是更清楚吗?
如http://docs.oracle.com/javase/tutorial/java/IandI/override.html所示,Java确实允许
我的问题是为什么Java不允许通过实例方法隐藏静态超类方法.这可以这样做:
class Base {
static void foo () {}
}
class Derived extends Base {
void foo () {}
void access () {
foo ();
Base.foo ();
}
}
Run Code Online (Sandbox Code Playgroud)
我没有看到上述方法有任何特殊问题 - 它只是像"允许的"隐藏静态的"混乱/复杂".
我很肯定这本指南存在,但我今天的Google技能似乎已被打破.你能告诉我指向该部分的MSDN的链接吗?
.NET 4引入了Code Contracts作为一项新功能.我想使用CC,但提供仍可在3.5 SP1中运行的文件.那可能吗?我可以只使用部分新功能吗?显然有可能让CC只进行静态检查而不包含在二进制文件中,这是正确的吗?
我知道CC可用于3.5作为单独的模块,这是一个可行的解决方法,以防我无法使用4版本的CC?功能集有区别吗?
我目前正在设计一个需要管理员使用密码登录的系统.由于某些原因,在安装过程中很难设置此密码,但可以在以后更改.
我的想法是这样的:如果我将默认密码保留为空,那么每个管理员都会尽快修复此问题,这是非常不可靠的.如果我使用某种预定义的密码,管理员可能会认为"啊..没有人会认为我的'defaultpassword'是我的密码所以改变并不是很重要."
所以基本的想法是让它变得如此可怕,以至于即使是最懒惰的人也会为此做些什么.
编辑:在我的情况下,首次登录时无法更改密码.必须在XML文件中手动编辑它.这是一个糟糕的环境,但很难改变,这就是我要问的原因.我希望有一个像Windows一样的解决方案.
编辑:我从未触及过这个话题,所以我不熟悉相关问题.我提出了这样一个疯狂的想法!我知道我还需要学到很多东西.我会暂时打开这个,然后接受最多投票的答案.感谢您的见解!
我认为这是一个完全无足轻重的任务,但它给了我一些头痛.我想打开一个文件以确保我获得独占访问权限,测试某些条件,然后将其删除.
现在我正在使用99%的方法:
FileStream s = null;
try {
s = new FileStream (
path,
FileMode.Open,
FileAccess.ReadWrite,
FileShare.None);
// some stuff about the file is checked here
s.Dispose ();
// hope the file is not accessed by someone else...
File.Delete (path);
return true;
}
catch (IOException) {
if (s !=null) s.Dispose ();
return false;
}
Run Code Online (Sandbox Code Playgroud)
这通常有效,但我认为有一种更好的方法可以避免边缘条件.
使用DeleteOnClose标志打开文件不起作用,因为所述检查(在打开并且已经设置了删除标志后发生)可能表示不应删除该文件.
我发现我的应用程序花了25%的时间在循环中执行此操作:
private static int Diff (int c0, int c1)
{
unsafe {
byte* pc0 = (byte*) &c0;
byte* pc1 = (byte*) &c1;
int d0 = pc0[0] - pc1[0];
int d1 = pc0[1] - pc1[1];
int d2 = pc0[2] - pc1[2];
int d3 = pc0[3] - pc1[3];
d0 *= d0;
d1 *= d1;
d2 *= d2;
d3 *= d3;
return d0 + d1 + d2 + d3;
}
}
Run Code Online (Sandbox Code Playgroud)
如何提高此方法的性能?我的想法到目前为止:
编辑:为方便起见,一些反映真实环境和用例的测试代码.(实际上,涉及的数据更多,并且数据不会在单个大块中进行比较,而是在每个kb的许多块中进行比较.)
public static class ByteCompare …Run Code Online (Sandbox Code Playgroud) 有很多相关的问题,但我正在寻找一个特定于我的案例的解决方案.有一组(通常)14个整数.如何快速判断每个int是否恰好出现两次(即有7对)?值范围从1到35.这里的主要方面是性能.
作为参考,这是我目前的解决方案.编写的内容尽可能地与规范相似,没有考虑到性能,因此我确信可以大大改进:
var pairs = Array
.GroupBy (x => x)
.Where (x => x.Count () == 2)
.Select (x => x.ToList ())
.ToList ();
IsSevenPairs = pairs.Count == 7;
Run Code Online (Sandbox Code Playgroud)
使用Linq是可选的.我不在乎如何,只要它快:)
编辑:有一个特殊情况,int出现2n次,n> 1.在这种情况下,检查应该失败,即应该有7个不同的对.
编辑:结果 我测试了Ani和Jon的解决方案,经过微小的修改,在目标应用程序的多个基准测试运行期间发现,Ani在我的机器上有大约两倍Jon的吞吐量(在Win7-64上有一些Core 2 Duo).生成整数数组已经需要大约相应的检查,所以我对结果感到满意.谢谢,全部!
如何检索article-field1中的文本?
<title>Testing</title>
<link>http://example.org</link>
<description>Description</description>
<language>en-us</language>
<lastBuildDate>Mon, 13 Feb 2012 00:00:00 +0000</lastBuildDate>
<item>
<title>Title Here</title>
<link>http://example.org/2012/03/27/</link>
<description><![CDATA[
<div id="article-field1"><a href="http://example.org/test1">Test 1</a></div>
<div id="article-field2">123</div>
<pubDate>Tue, 2 Mar 2012 00:00:00 +0000</pubDate>
</item>
Run Code Online (Sandbox Code Playgroud)
我试过用
//description/div[@id="article-field1"]/text()
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
谢谢