在C和C++中,exit()和之间有什么区别abort()?我试图在错误后结束我的程序(不是例外).
我有一个win32项目,我已经加载到Visual Studio 2005中.我希望能够将内容打印到Visual Studio输出窗口,但我不能为我的生活找出方法.我试过'printf'和'cout <<',但是我的信息一直没有打印.
是否有某种特殊的方式来打印到Visual Studio输出窗口?
可以使用ASP.Net路由(而不是MVC)来提供静态文件吗?
说我想路线
http://domain.tld/static/picture.jpg
Run Code Online (Sandbox Code Playgroud)
至
http://domain.tld/a/b/c/picture.jpg
Run Code Online (Sandbox Code Playgroud)
我想动态地做这件事,因为重写的URL是动态计算的.我无法一劳永逸地建立静态路线.
无论如何,我可以创建这样的路线:
routes.Add(
"StaticRoute", new Route("static/{file}", new FileRouteHandler())
);
Run Code Online (Sandbox Code Playgroud)
在FileRouteHandler.ProcessRequest方法我可以重写从路径/static/picture.jpg到/a/b/c/picture.jpg.然后我想为静态文件创建一个处理程序.ASP.NET使用它StaticFileHandler来实现此目的.不幸的是,这堂课是内部的.我试图使用反射创建处理程序,它实际上工作:
Assembly assembly = Assembly.GetAssembly(typeof(IHttpHandler));
Type staticFileHandlerType = assembly.GetType("System.Web.StaticFileHandler");
ConstructorInfo constructorInfo = staticFileHandlerType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null);
return (IHttpHandler) constructorInfo.Invoke(null);
Run Code Online (Sandbox Code Playgroud)
但使用内部类型似乎不是正确的解决方案.另一个选择是实现我自己的StaticFileHandler,但正确地这样做(支持范围和etags等HTTP的东西)是非常重要的.
我该如何处理ASP.NET中静态文件的路由?
两者之间是否有任何可测量的性能差异
((TypeA) obj).method1();
((TypeA) obj).method2();
((TypeA) obj).method3();
Run Code Online (Sandbox Code Playgroud)
和
var A = (TypeA) obj;
A.method1();
A.method2();
A.method3();
Run Code Online (Sandbox Code Playgroud)
什么时候使用?
我经常看到类似的东西
if (((TextBox)sender).Text.Contains('.') || ((TextBox)sender).Text.Contains(','))
Run Code Online (Sandbox Code Playgroud)
并想知道这是否是对性能的浪费.
我有一些代码会触发代码分析警告CA1063:
CA1063:Microsoft.Design:从"功能"实现的接口列表中删除IDisposable,并覆盖基类Dispose实现.
但是,我不确定我需要做些什么才能修复此警告.
简而言之,我有一个IFunctionality源自的界面IDisposable.类Functionality实现IFunctionality但是从类派生Reusable以便能够重用som代码.类Reusable也来源于IDisposable.
public class Reusable : IDisposable {
~Reusable() {
Dispose(false);
}
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(Boolean disposing) {
// ...
}
public void DoSomething() {
// ...
}
}
public interface IFunctionality : IDisposable {
void DoSomething();
void DoSomethingElse();
}
public class Functionality : Reusable, IFunctionality {
public void DoSomethingElse() {
// ...
}
#if WORK_AROUND_CA1063
// …Run Code Online (Sandbox Code Playgroud) 请参阅下文,了解正在进行的操作
我有一个非常奇怪的问题,捕获的异常是null.
该代码使用MEF并努力报告组合错误.使用调试器我可以看到抛出异常(a InvalidOperationException)但是当它被下面代码中的最后一个catch块捕获时,ex变量为null.在调试器和正常执行代码时都是如此.
static T ResolveWithErrorHandling<T>() where T : class
{
try
{
IocContainer.Compose(Settings.Default.IocConfiguration);
return IocContainer.Resolve<T>();
}
catch (ReflectionTypeLoadException ex)
{
// ... special error reporting for ReflectionTypeLoadException
}
catch (Exception ex)
{
// ex is null - that should not be possible!
// ... general error reporting for other exception types
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我用注释替换的代码是格式化错误消息的非常简单的代码.那里没什么奇怪的.
我试图改变代码以发现可能产生的影响:
ReflectionTypeLoadException),则最终catch块中捕获的异常不再为null.InvalidOperationException为第一个catch块添加一个catch块,则该块中捕获的异常不为null.InvalidOperationException在两个catch块之间添加一个catch块,则该块中捕获的异常为null.该项目使用代码契约,并对编译器生成的代码进行后处理以检查合同.不幸的是,我没有找到一种方法来摆脱测试目的,而不对项目进行大手术.
我目前的解决方法是不捕获ReflectionTypeLoadException并改为分支ex一般异常处理程序中的类型. …
我开始了一个新项目,列出了所有正在运行的进程的完整路径.当访问某些进程时,程序崩溃并抛出Win32Exception.描述说明列出流程模块时发生错误.最初我认为这个问题可能会发生,因为我在64位平台上运行它,所以我重新编译它为CPU类型x86和AnyCPU.不过,我遇到了同样的错误.
Process p = Process.GetProcessById(2011);
string s = proc_by_id.MainModule.FileName;
Run Code Online (Sandbox Code Playgroud)
错误发生在第2行.空白字段显示发生错误的进程:

有没有办法绕过这个错误信息?
WPF有SystemParameters类暴露系统指标的大量.在我的电脑上,我注意到普通窗口的标题高度为30像素,边框宽度为8像素.这是在Windows 7上启用了Aero主题:

但是,SystemParameters返回以下值:
SystemParameters.BorderWidth = 5
SystemParameters.CaptionHeight = 21
Run Code Online (Sandbox Code Playgroud)
在这里,我禁用了Aero主题:

现在,SystemParameters返回以下值:
SystemParameters.BorderWidth = 1
SystemParameters.CaptionHeight = 18
Run Code Online (Sandbox Code Playgroud)
如何使用SystemParameters?计算实际观测值?
我在typescript中定义了以下接口:
interface MyInterface {
() : string;
}
Run Code Online (Sandbox Code Playgroud)
该接口简单地引入了一个不带参数的调用签名并返回一个字符串.如何在类中实现此类型?我尝试过以下方法:
class MyType implements MyInterface {
function () : string {
return "Hello World.";
}
}
Run Code Online (Sandbox Code Playgroud)
编译器一直告诉我
类'MyType'声明接口'MyInterface'但没有实现它:Type'MyInterface'需要一个调用签名,但Type'MyType'缺少一个
如何实现呼叫签名?
我想建立一个可以立即响应事件的Rx订阅,然后忽略在指定的"冷却"时段内发生的后续事件.
开箱即用的Throttle/Buffer方法仅在超时过后响应,这不是我需要的.
下面是一些设置场景的代码,并使用Throttle(这不是我想要的解决方案):
class Program
{
static Stopwatch sw = new Stopwatch();
static void Main(string[] args)
{
var subject = new Subject<int>();
var timeout = TimeSpan.FromMilliseconds(500);
subject
.Throttle(timeout)
.Subscribe(DoStuff);
var factory = new TaskFactory();
sw.Start();
factory.StartNew(() =>
{
Console.WriteLine("Batch 1 (no delay)");
subject.OnNext(1);
});
factory.StartNewDelayed(1000, () =>
{
Console.WriteLine("Batch 2 (1s delay)");
subject.OnNext(2);
});
factory.StartNewDelayed(1300, () =>
{
Console.WriteLine("Batch 3 (1.3s delay)");
subject.OnNext(3);
});
factory.StartNewDelayed(1600, () =>
{
Console.WriteLine("Batch 4 (1.6s delay)");
subject.OnNext(4);
});
Console.ReadKey();
sw.Stop();
}
private static void …Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×2
c++ ×2
winapi ×2
windows ×2
abort ×1
asp.net ×1
c ×1
console ×1
exception ×1
exit ×1
idisposable ×1
mef ×1
performance ×1
process ×1
types ×1
typescript ×1
url-routing ×1
wpf ×1