Programação cil
Perguntas com a marcação «cil»
Qual é o propósito de uma pilha? Por que precisamos disso?
Então, agora estou aprendendo o MSIL a aprender a depurar meus aplicativos C # .NET. Eu sempre me perguntei: qual é o propósito da pilha? Apenas para colocar minha pergunta em contexto: Por que há uma transferência da memória para a pilha ou "carregamento"? Por outro lado, por que há …
320 c# .net vb.net cil .net-assembly
O que você pode fazer no MSIL e não no C # ou no VB.NET? [fechadas]
165 c# .net clr cil
Por que o compilador C # traduz isso! = Comparação como se fosse uma comparação?
Por puro acaso, descobri que o compilador C # vira esse método: static bool IsNotNull(object obj) { return obj != null; } ... neste CIL : .method private hidebysig static bool IsNotNull(object obj) cil managed { ldarg.0 // obj ldnull cgt.un ret } … Ou, se você preferir examinar o …
147 c# cil il notnull binary-operators
Máquina virtual e CLR do Java
Como uma espécie de acompanhamento da pergunta chamada Diferenças entre o MSIL e o bytecode Java? , quais são as (principais) diferenças ou semelhança em como a Java Virtual Machine funciona versus como o.NET Framework O Common Language Runtime (CLR) funciona? Além disso, é o Estrutura .NET CLR uma "máquina …
140 java .net bytecode cil vm-implementation
Substituir dinamicamente o conteúdo de um método C #?
O que eu quero fazer é mudar a forma como um método C # é executado quando chamado, para que eu possa escrever algo assim: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n …
108 c# methods assemblies cil swap
Por que isso (null ||! TryParse) resulta em "uso de variável local não atribuída"?
O código a seguir resulta no uso da variável local não atribuída "numberOfGroups" : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } No entanto, este código funciona bem (embora ReSharper diga que o = 10é redundante): int numberOfGroups = 10; if(options.NumberOfGroups == null || …
98 c# c#-4.0 dynamic compiler-construction cil
Aumento de desempenho estranho em benchmark simples
Ontem encontrei um artigo de Christoph Nahr intitulado ".NET Struct Performance" que comparou várias linguagens (C ++, C #, Java, JavaScript) para um método que adiciona duas estruturas de pontos ( doubletuplas). Como se viu, a versão C ++ leva cerca de 1000 ms para executar (iterações 1e9), enquanto C …
97 c# performance benchmarking cil
Qual é o propósito de hidebysig em um método MSIL?
Usando ildasm e um programa C #, por exemplo static void Main(string[] args) { } dá: .method private hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Program::Main O que a construção hidebysig faz?
92 cil
Existe uma explicação para os operadores inline em "k + = c + = k + = c;"?
Qual é a explicação para o resultado da operação a seguir? k += c += k += c; Eu estava tentando entender o resultado de saída do seguinte código: int k = 10; int c = 30; k += c += k += c; //k=80 instead of 110 //c=70 e …
89 c# cil compound-assignment
Por que! 0 é um tipo em Microsoft Intermediate Language (MSIL)?
Em muitas listagens MSIL, observei o seguinte: System.Nullable`1<!0> etc ... ou class !0 etc ... Qual é o significado de !0nessas circunstâncias?
88 c# .net cil
Converter IntPtr em Int64: conv.u8 ou conv.i8?
Estou trabalhando em uma ILGeneratorextensão para ajudar a emitir fragmentos de IL usando Expression. Tudo estava bem, até eu trabalhar na parte de conversão de números inteiros. Há algo realmente contra-intuitivo para mim, como: Use conv.i8para converter Int32paraUInt64 Use conv.u8para converter UInt32paraInt64 Eles são todos porque a pilha de avaliação …