我有一个看起来像这样的方法:
void throwException(string msg)
{
throw new MyException(msg);
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我写
int foo(int x, y)
{
if (y == 0)
throwException("Doh!");
else
return x/y;
}
Run Code Online (Sandbox Code Playgroud)
编译器会抱怨foo"并非所有路径都返回一个值".
是否有一个属性我可以添加到throwException以避免这种情况?就像是:
[NeverReturns]
void throwException(string msg)
{
throw new MyException(msg);
}
Run Code Online (Sandbox Code Playgroud)
我担心自定义属性不会这样做,因为为了我的目的,我需要编译器的合作.
成功时,ShellExecute返回一个句柄.
我们需要关闭这个句柄,如果是这样,怎么样?
根据已公布的我微软的例子,我们需要不关闭该句柄.但ShellExecute本身的文档在这个主题上是静音的.你能否证实我们确实不需要关闭这个手柄?
但是,一个句柄如何有效并且不需要被关闭?以下哪个陈述是真实的:
是否存在XXX<T>可以使用for-each迭代并且包含两者的类型T[],Iterable<T>以便以下编译(假设类上下文和兼容方法do_something)?
public void iterate(XXX<T> items)
{
for (T t : items)
do_something(t);
}
public void iterate_array(T[] items)
{
iterate(items);
}
public void iterate_iterable(Iterable<T> items)
{
iterate(items);
}
Run Code Online (Sandbox Code Playgroud)
在Java 1.5中,我没有发现任何类型.也许在该语言的更高版本中?(我想这可能是一个常见问题解答.如果它是噪音,请注意.快速谷歌搜索没有给出答案.)
Thread.Abort 是否可以中断正在休眠的线程(例如,使用 Thread.Sleep(TimeSpan.FromDays(40)) ?或者它会等到睡眠时间跨度到期?
(备注:FromDays(40) 当然是个笑话。我知道 Thread.Abort 不是停止线程的推荐方法,我正在处理我现在不想重构的遗留代码。)
c# ×2
abort ×1
attributes ×1
exception ×1
java ×1
return-type ×1
shellexecute ×1
sleep ×1
winapi ×1