草庐IT

编译ffmpeg

全部标签

c# - 你会在哪里使用 C# 运行时编译?

我最近在搜索其他内容时偶然在另一个网站上看到了一个关于C#运行时编译的简短讨论,我认为这个想法很有趣。你用过这个吗?我正在尝试确定如何/何时使用它以及它解决了什么问题。我很想知道您是如何使用它的,或者它在什么情况下才有意义。非常感谢。 最佳答案 通常,我看到它用在您当前正在使用反射并需要优化性能的情况下。例如,不是使用反射来调用方法X,而是在运行时生成一个动态方法来为您执行此操作。 关于c#-你会在哪里使用C#运行时编译?,我们在StackOverflow上找到一个类似的问题:

c# - .Net 属性功能是在编译时还是在运行时或两者都使用?

在.Net中,属性功能是在编译时还是运行时或两者都使用?能举几个例子吗? 最佳答案 大多数仅在运行时使用。编译器使用的数量非常有限,包括:[Conditional(...)]-省略每个构建符号的方法调用[Obsolete(...)]-发出警告/错误作为构建输出[Serializable]-写成CLI标志[Extension]-用于扩展方法[AttributeUsage]-影响属性的应用方式-编译器在创建程序集文件时会使用诸如[AssemblyVersion]、[AssemblyFileVersion]等一系列内容,以及诸如[Inte

c# - 编译器将显式转换为我自己的类型替换为显式转换为 .NET 类型?

我有以下代码:publicstructNum{privatereadonlyT_Value;publicNum(Tvalue){_Value=value;}staticpublicexplicitoperatorNum(Tvalue){returnnewNum(value);}}...doubled=2.5;Numb=(Num)d;这段代码编译通过了,这让我很惊讶。显式转换应该只接受byte,不是double.但不知何故,双重被接受了。当我在转换中放置一个断点时,我看到value已经是byte具有值(value)2.从double转换为byte应该是显式的。如果我用ILSpy反编译我的

c# - JIT 编译器是编译器还是解释器?

我的问题是将IL转换为机器语言的JIT编译器到底是编译器还是解释器。还有一个问题:HTML、JavaScript是编译型语言还是解释型语言?提前致谢 最佳答案 JIT(justintime)编译器是一种编译器。它进行优化以及编译为机器代码。(甚至称为编译器)HTML、Javascript被解释,它们由Web浏览器按原样读取,并以最少的错误修复和优化运行。 关于c#-JIT编译器是编译器还是解释器?,我们在StackOverflow上找到一个类似的问题: htt

c# - 修改已编译的.Net Exe

我有一个用C#编写的应用程序(当然没有源代码),需要稍微更改一下。例如,我需要停止创建不必要菜单的几行代码。所以我认为我应该将它们注释掉。源代码没有混淆。我知道我可以使用Reflector/Reflexil等工具完全反编译、更改和再次编译。但是谁都知道这样做,很多代码都不能再编译了!Reflector(或任何其他产品)中是否有一种方法可以在没有此过程的情况下禁用/更改其中的一部分?谢谢。 最佳答案 您可能想试试dnSpy。它是从ILSpy派生的.NET程序集编辑器、反编译器和调试器。https://github.com/0xd4d/

c# - 编译器错误 "Default parameter specifiers are not permitted"

下面是我的代码。publicclassPItem{publicStringcontent;publicintcount;publicintfee;publicintamount;publicstringdescription;//DefaultvaluespublicPItem(String_content="",int_count=0,int_fee=0,string_description="",int_amount=0){content=_content;count=_count这是在一个类里面。当我尝试运行程序时出现此错误:Defaultparameterspecifiersa

C# 字典初始化程序编译不一致

以下代码可以编译,但会因NullReferenceException而失败:classTest{publicDictionaryDictionary{get;set;}}staticvoidMain(string[]args){varx=newTest{Dictionary=//fails{{"key","value"},{"key2","value2"}}};}如果您将标记为“失败”的行替换为以下内容,它将正常工作(如预期):Dictionary=newDictionary失败的语法是否有任何用途——它能否在其他情况下成功使用?或者这是编译器的疏忽? 最佳

c# - C# 中条件编译的替代方案

除了在C#中使用条件编译代码之外,还有什么替代方法?我有一个包含大量基于#ifdef的代码的类。一段时间后我的代码变得不可读。寻找重构技术来提高代码的可读性和维护性,其中包含许多#ifdefs 最佳答案 一件事是使用ConditionalAttribute:[Conditional("DEBUG")]publicvoidFoo(){//Stuff}//ThiscallwillonlybecompiledintothecodeiftheDEBUGsymbolisdefinedFoo();它仍然是条件编译,但是基于属性而不是#ifdef

c# - 为什么此 C# 代码无法编译?

double?test=true?null:1.0;在我的书中,这与if(true){test=null;}else{test=1.0;}但是第一行给出了这个编译器错误:Typeofconditionalexpressioncannotbedeterminedbecausethereisnoimplicitconversionbetween''and'double'. 最佳答案 发生这种情况是因为编译器试图从右到左评估语句。这意味着它看到1.0并确定它是双倍(不是双倍?),然后它看到null。所以double和null之间显然没有隐

交叉编译 - X86的TCPDUMP

我需要tcpdump二进制android-x86。这是我所做的:sudoapt-getinstallgcc-i686-linux-androidsudoapt-getinstallbyaccsudoapt-getinstallflexwgethttp://www.tcpdump.org/release/tcpdump-4.9.0.tar.gzwgethttp://www.tcpdump.org/release/libpcap-1.8.1.tar.gztarzxvftcpdump-4.9.0.tar.gztarzxvflibpcap-1.8.1.tar.gzcdlibpcap-1.8.1expo