• Jueves 28 de Marzo de 2024, 21:15

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - DanteInfernum666

Páginas: [1]
1
C# / Duda respecto a la gestión de la memoria.
« en: Domingo 14 de Julio de 2013, 23:32 »
¿Cambia en algo la forma en que se gestiona la memoria si inicializo los atributos de una clase inmediatemente después de haberlos declarado de que si los inicializo mediante un constructor?

Ejemplo:
Código: [Seleccionar]
class Class
    {
        int[] arreglo = new int[500];

        public Class()
        {
 
        }
    }

Lo mismo, pero inicializando el atributo a través del constructor por defecto:
Código: [Seleccionar]
class Class
    {
        int[] arreglo;

        public Class()
        {
            arreglo = new int[500];
        }
    }

¿Alguna manera es más eficiente que la otra?

2
C# / Referencia cultural invariable
« en: Jueves 18 de Abril de 2013, 02:33 »
He estado leyendo un ejemplo de un programa muy simple para calcular raíces cuadradas, y empieza así:

<< NumberFormatInfo nfi = NumberFormatInfo.InvariantInfo; >>

Esto me llevó a investigar un poco en que consiste la clase "NumberFormatInfo", pero en cuanto a su propiedad "InvariantInfo" sólo encuentro información disponible en la documentación oficial de Microsoft, y la verdad que por ahora casi todo lo que leo de ahí lo entiendo poco y nada.

Sé que las referencias culturales tienen que ver por ejemplo con el carácter utilizado para representar los números decimales, el formato de la fecha, la moneda, etc. Lo que no entiendo  es en qué consiste una referencia cultural invariable. Les agradecería si me pudieran dar un par de ejemplos sobre esto como para ver de qué se trata.

Este es uno ejercicio de ejemplo de unos de estos sitios "online judge", supongo que es necesario configurar todo esto de las referencias culturales para que su compilador no te tire un error a la hora de comprobar el código que uno sube.


3
C# / Duda con parámetros por referencia
« en: Miércoles 10 de Abril de 2013, 00:27 »
Leí por ahí que: "poner static antes del nombre de un método hace que todas las variables locales de ese método tengan clase de almacenamiento estático"

¿Un método NO estático que acepte parámetros por referencia es equivalente a un método ESTÁTICO que acepte parámetros por valor?
Equivalente en el sentido de modificar la variable original pasada como parámetro.

¡Saludos!

4
C# / Duda con clases/atributos estáticos.
« en: Martes 2 de Abril de 2013, 03:25 »
¡Hola a todos! Antes que nada aviso que soy nuevo por estos lados, y espero que alguien pueda arrojarme un poco de luz...

Estoy siguiendo un curso de C#, y me encontré con la siguiente sentencia en un de sus ejemplos:

Código: [Seleccionar]
class Dado
    {
        private int valor;
        private static Random aleatorio;


¿Qué es "private static Random aleatorio;"? ¿Un atributo estático de la clase "Dado"? (si es que existe eso...) ¿Otra clase estática llamada Random?

Les dejo el código completo:

Código: [Seleccionar]

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Dado
    {
        private int valor;
        private static Random aleatorio;

        public Dado()
        {
            aleatorio = new Random();
        }

        public void Tirar()
        {
            valor = aleatorio.Next(1, 7);
        }

        public void Imprimir()
        {
            Console.WriteLine("El valor del dado es:" + valor);
        }

        public int RetornarValor()
        {
            return valor;
        }
    }

    class JuegoDeDados
    {
        private Dado dado1, dado2, dado3;

        public JuegoDeDados()
        {
            dado1 = new Dado();
            dado2 = new Dado();
            dado3 = new Dado();
        }

        public void Jugar()
        {
            dado1.Tirar();
            dado1.Imprimir();
            dado2.Tirar();
            dado2.Imprimir();
            dado3.Tirar();
            dado3.Imprimir();
            if (dado1.RetornarValor() == dado2.RetornarValor() &&
                dado1.RetornarValor() == dado3.RetornarValor())
            {
                Console.WriteLine("Ganó");
            }
            else
            {
                Console.WriteLine("Perdió");
            }
            Console.ReadKey();
        }

        static void Main(string[] args)
        {
            JuegoDeDados j = new JuegoDeDados();
            j.Jugar();
        }
    }
}


Si quito la parte de <<static>> en <<private Random (static) aleatorio;>>, los tres dados siempre retornan el mismo valor. ¿Por qué pasa esto? ¿Por qué es necesario declarar la sentencia como estática para evitarlo?

¡Saludos!

Páginas: [1]