Articles of clr

Quais são as raízes?

Quais são as raízes na garbage collection? Eu li a definição de raiz como “qualquer referência que você programa pode acessar para” e definição de ao vivo é que um object que está sendo usado, que pode ser uma variável local, variável estática. Estou pouco confuso com a discriminação da diferença entre objects raiz e […]

Um guia definitivo para alterações de quebra de API no .NET

Gostaria de reunir o máximo de informações possível sobre o versionamento de API no .NET / CLR e, especificamente, como as alterações da API afetam ou não os aplicativos clientes. Primeiro, vamos definir alguns termos: Alteração de API – uma alteração na definição publicamente visível de um tipo, incluindo qualquer um de seus membros públicos. […]

LINQ no tempo de execução do .NET 2.0

Um aplicativo habilitado para LINQ pode ser executado em uma máquina que possui apenas o runtime do .NET 2.0 instalado? Em teoria, o LINQ nada mais é do que o açúcar sintático, e o código IL resultante deve ter a mesma aparência que teria no .NET 2.0. Como posso escrever o LINQ sem usar as […]

Surpresa de desempenho com tipos “as” e anuláveis

Estou apenas revisando o capítulo 4 do C # em Profundidade, que lida com tipos anuláveis, e estou adicionando uma seção sobre como usar o operador “as”, que permite escrever: object o = …; int? x = o as int?; if (x.HasValue) { … // Use x.Value in here } Eu pensei que isso era […]

Por que Large Object Heap e por que nos importamos?

Eu li sobre Gerações e heap de objects grandes. Mas eu ainda não consigo entender qual é o significado (ou benefício) de ter heap de object grande? O que poderia ter corrido mal (em termos de desempenho ou memory) se o CLR tivesse confiado apenas na Geração 2 (Considerando que o limite para Gen0 e […]

Como os ValueTypes derivam de Object (ReferenceType) e ainda são ValueTypes?

C # não permite que estruturas derivem de classs, mas todos os ValueTypes derivam de Object. Onde esta distinção é feita? Como o CLR lida com isso?

Em C #, por que String é um tipo de referência que se comporta como um tipo de valor?

Uma String é um tipo de referência, embora tenha a maioria das características de um tipo de valor, como ser imutável e ter == sobrecarregado para comparar o texto, em vez de garantir que eles façam referência ao mesmo object. Por que a string não é apenas um tipo de valor?

Decifrando os parâmetros de exceção do .NET clr20r3 P1..P10

Estou tentando decifrar o significado nos parâmetros P1 … P10 associados a um clr20r3 que é gravado no log de events quando meu aplicativo experimenta uma exceção. O melhor que consegui encontrar é: P1 : o processo de hospedagem ( por exemplo, w3wp.exe ) P2 : a versão do processo de hospedagem ( por exemplo, […]

Casting vs usando a palavra-chave ‘as’ no CLR

Ao programar interfaces, descobri que estou fazendo muita conversão de tipo de object ou conversão. Existe uma diferença entre esses dois methods de conversão? Em caso afirmativo, existe uma diferença de custo ou como isso afeta meu programa? public interface IMyInterface { void AMethod(); } public class MyClass : IMyInterface { public void AMethod() { […]