草庐IT

反编译器

全部标签

c# - ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final 问题 - 编译器希望引用未找到的 7.0.0.0

我遇到了同样的问题。我在我的project.json文件中添加了以下依赖项:"dependencies":{"EntityFramework":"7.0.0-beta4","EntityFramework.Core":"7.0.0-rc1-final","EntityFramework.SqlServer":"7.0.0-beta8","EntityFramework.Commands":"7.0.0-rc1-final"},"commands":{"web":"Microsoft.AspNet.Server.Kestrel","ef":"EntityFramework.Command

c# - 为什么当我将类转换为它未实现的接口(interface)时没有编译器错误?

如果我尝试从一个类到一个接口(interface)的无效转换,那么编译器不会报错(错误发生在运行时);但是,如果我尝试对抽象类进行类似的转换,它确实会提示。classProgram{abstractclassaBaz{publicabstractintA{get;}}interfaceIBar{intB{get;}}classFoo{publicintC{get;}}staticvoidMain(){Foofoo=newFoo();//compilererror,asexpected,sinceFoodoesn'tinheritaBazaBazbaz=(aBaz)foo;//nocom

c# - 有没有办法在 Visual Studio 2008 中使用 2005 C# 编译器?

我在项目中使用visualstudio2008/C#。我们使用的是.NET2.0,而2.0中发布的任何版本的C#。我可以将我的项目设置为在VS2008中使用.NET2.0框架,但我不知道在哪里选择我的C#编译器。通常这会是一个问题,但我每天大约90%的时间都花在JS上,所以在C#中声明变量时,我总是不小心留在var语句中。这在我的机器上编译得很好并且VS没有报告错误,然后它破坏了构建。有什么方法可以在VS2008中使用VS2005中较旧的C#编译器(抱歉,我不知道那是什么版本)? 最佳答案 您不能告诉它使用C#2编译器,但您可以告诉

c# - 如何反编译在 VS.net 中创建的 .dll 文件

我需要反编译一个在VS.net中创建的dll文件。有什么工具可以做到这一点吗?或者我可以用一些代码来做到这一点吗?请帮忙。 最佳答案 编辑2:我现在使用DotPeekfromJetbrains.它在调试时根据需要进行反编译的能力令人惊叹。编辑:NowthatReflectorisnolongerafreetool,一个更新的工具ILSpy正在开发中。ILDASM如果您不想使用其他工具,它就是您的friend。 关于c#-如何反编译在VS.net中创建的.dll文件,我们在StackOve

c# - 为什么 C# 编译器不捕获 InvalidCastException

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Compile-timeandruntimecastingc#据我了解,以下代码将始终编译,并且还会始终在运行时通过抛出InvalidCastException失败。例子:publicclassPost{}publicclassQuestion:Post{}publicclassAnswer:Post{publicvoidFail(){Postp=newPost();Questionq=(Question)p;//ThiswillthrowanInvalidCastException}}我的问题是...如果我

c# - 为什么 ASP.NET 编译器会在每次构建时重建所有二进制文件?

当我使用aspnet_compiler重新编译我的项目(asp.net、c#)时,即使没有进行任何代码更改,重建的二进制文件也会发生变化(与之前的构建相比)。据我所知,这是由于构建每次构建时都会生成一个新的模块版本ID(guid)(以区分构建),另一个类似的问题讨论了这个问题:Canispecifythemoduleversionid(MVID)whenbuildinga.netassembly?上面的链接问题似乎表明没有办法重建项目并使二进制文件与先前构建的相同未更改代码相匹配。好的,很好,我明白了——但为什么所有的二进制文件都被重建了?我认为,根据文档(http://msdn.mi

c# - 编译器在传递方法时无法确定泛型类型

我在使用C#和泛型类型推断时遇到了问题。我想编写一个方法来传递具有任何类型的方法,但编译器无法推断我传入的方法的类型。编译器总是提示消息Expectedamethodwith'???TestFunc(???,???)'signature这是一个测试用例。usingSystem;publicclassExample{privateinterfaceITest{intTestFunc(stringstr,inti);}privateclassTest:ITest{publicintTestFunc(stringstr,inti){return0;}}publicstaticvoidMain

c# - 为什么 C# 编译器不自动推断此代码中的类型?

为什么C#编译器不推断FooExt.Multiply()的事实满足Functions.Apply()的签名?我必须指定一个类型为Func的单独委托(delegate)变量让代码工作......但似乎类型推断应该处理这个问题。我错了吗?如果是这样,为什么?编辑:收到的编译错误是:ThetypeargumentsformethodFirstClassFunctions.Functions.Apply(T1,System.Func,T2)'cannotbeinferredfromtheusage.Tryspecifyingthetypeargumentsexplicitlynamespace

c# - 有没有办法让 .Net JIT 或 C# 编译器优化掉空的 for 循环?

Does.NETJIToptimizeemptyloopsaway?的跟进:下面的程序只运行一个空循环十亿次并打印出运行时间。在我的机器上需要700毫秒,我很好奇是否有办法让抖动优化空循环。usingSystem;namespaceConsoleApplication1{classProgram{staticvoidMain(){varstart=DateTime.Now;for(vari=0;i据我所知,答案是否定的,但我不知道是否有我可能没有尝试过的隐藏编译器选项。我已经确保在Release模式下编译并在没有附加调试器的情况下运行,但仍然需要700毫秒来运行这个空循环。我也尝试了N

c# - 允许 C# 编译器优化局部变量并从内存中重新获取值

编辑:我问的是当两个线程在没有适当同步的情况下同时访问相同数据时会发生什么(在这次编辑之前,这一点没有明确表达)。我对C#编译器和JIT编译器执行的优化有疑问。考虑以下简化示例:classExample{privateAction_action;privatevoidInvokeAction(){varlocal=this._action;if(local!=null){local();}}}请忽略示例中读取_action可能会产生缓存和过时的值,因为没有volatile说明符或任何其他同步。这不是重点:)是否允许编译器(或者实际上是运行时的抖动)优化对局部变量的赋值,而不是从内存中读