Articles of clr

Como o GetHashCode () é implementado para o Int32?

Eu tenho procurado em todo o lugar, mas não consigo encontrar nada. Alguém pode lançar alguma luz sobre isso?

explicitamente converter parâmetros de tipo genérico para qualquer interface

Em Perguntas frequentes sobre genéricos: Práticas recomendadas diz: O compilador permitirá que você lance explicitamente parâmetros de tipo genérico para qualquer interface, mas não para uma class: interface ISomeInterface {…} class SomeClass {…} class MyClass { void SomeMethod(T t) { ISomeInterface obj1 = (ISomeInterface)t;//Compiles SomeClass obj2 = (SomeClass)t; //Does not compile } } Eu vejo […]

Por que tipos de valor são armazenados em pilhas?

Por que o C # (.Net) prefere a pilha para armazenar tipos de valor? Qual é a principal razão por trás desse design? É porque as operações de leitura / gravação para a pilha aproveitam melhor o processador da máquina? Além disso, talvez você possa justificar por que não os outros?

sizeof (int) em x64?

Quando eu faço sizeof(int) no meu projeto c # .net recebo um valor de retorno de 4. Eu definir o tipo de projeto para x 64, então por que diz 4 em vez de 8? Isso é porque estou executando código gerenciado?

Está lançando a mesma coisa que converter?

No livro Learning C # de Jesse Liberty, ele diz: “Objetos de um tipo podem ser convertidos em objects de outro tipo. Isso é chamado de conversão”. Se você investigar o IL gerado a partir do código abaixo, você poderá ver claramente que a atribuição atribuída não está fazendo a mesma coisa que a atribuição […]

Devemos sempre include um construtor padrão na class?

Fui perguntado por um colega que deveria include sempre um construtor padrão em uma class? Se sim, porque? Se não, porque não? Exemplo public class Foo { Foo() { } Foo(int x, int y) { … } } Também estou interessado em obter algumas luzes sobre isso de especialistas.

Flutuação vs Desempenho Duplo

Eu fiz alguns testes de tempo e também li alguns artigos como este (último comentário), e parece que na versão Build, float e double valores tomam a mesma quantidade de tempo de processamento. Como isso é possível? Quando float é menos preciso e menor comparado a valores duplos, como o CLR pode dobrar no mesmo […]

Resolver referências de assembly de outra pasta

Estou desenvolvendo um aplicativo que faz referência e usa alguns conjuntos de terceiros de um determinado fornecedor; Na checkbox de desenvolvimento eu tenho esses 3 assemblies em uma pasta de referência na minha tree de origem e posso referenciá-los e construir o aplicativo, o aplicativo é compilado, mas não é executado porque o aplicativo inteiro […]

Como detectar qual runtime do .NET está sendo usado (MS vs. Mono)?

Eu gostaria de saber durante a execução de um programa se ele está sendo executado usando o tempo de execução Mono ou o tempo de execução da Microsoft. Atualmente estou usando o código a seguir para determinar se estou em um CLR do MS: static bool IsMicrosoftCLR() { return RuntimeEnvironment.GetRuntimeDirectory().Contains(“Microsoft”); } No entanto, isso é […]

Por que Random.Next () sempre retorna o mesmo número

Considere este método: private static int GenerateRandomNumber(int seed, int max) { return new Random(seed).Next(max); } Na minha máquina, a execução desse loop produz o mesmo número em 1500 iterações: for (int i = 0; i < 1501; i++) { int random = GenerateRandomNumber(100000000, 999999999); Console.WriteLine(random.ToString()); Console.ReadKey(); } Eu recebo 145156561, para cada iteração. Eu não […]