Foros del Web » Programación para mayores de 30 ;) » .NET »

Structuras en C#

Estas en el tema de Structuras en C# en el foro de .NET en Foros del Web. Hola chicos de forosdelweb, aqui sigo yo molestando pues por que ni siquiera he terminado el problema que tengo de hace rato, mi pregunta es ...
  #1 (permalink)  
Antiguo 06/04/2005, 09:52
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
Pregunta Structuras en C#

Hola chicos de forosdelweb, aqui sigo yo molestando pues por que ni siquiera he terminado el problema que tengo de hace rato, mi pregunta es como declarar bien una estructura, yo la tengo asi y me dicen que esta mal
Código:
public struct nodo
{
 public int[] cedula;
 public string[] nombre;   
 public string[] ape;
}
public static void Main()
{
 nodo n=new nodo();
 n.cedula=new int[num];
 n.nombre=new string[num];
 n.ape=new string[num];
}
teniendo en cuenta que la estructura esta dentro de la clase
  #2 (permalink)  
Antiguo 06/04/2005, 10:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Solo recuerda que las estructuras no usan instancias..

simplemente te quedarías así:

Cita:
nodo n;
n.cedula=new int[num];
n.nombre=new string[num];
n.ape=new string[num];
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 06/04/2005, 10:11
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
[color=blue]Mira este es el codigo completo completo, me dicen que esta mal, esta segun como me dijistes antes que lo pusiera para lo de los colores y todo eso.[color]
Código:
using System.Runtime.InteropServices;
using System;
namespace vector
{
class vectorApp
{
 [DllImport ("kernel32.dll")]
 public static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput, int wAttributes);
 [DllImport ("kernel32.dll")]
 public static extern IntPtr GetStdHandle(uint nStdHandle);
 public struct nodo
 {
  public int[] cedula;
  public string[] nombre;   
  public string[] ape;
 }
 public static void Main()
 {
  nodo n;
  ushort num=20;
  uint STD_OUTPUT_HANDLE=0xfffffff5;
  IntPtr hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
  n.cedula=new int[num];
  n.nombre=new string[num];
  n.ape=new string[num];
  for(int x=1;x<=num;x++)
  {
   Console.Write("# de cedula: {0}",x);
   n.cedula[x]=Console.ReadLine();
   Console.Write("Digite nombre: {0}",x);
   n.nombre[x]=Console.ReadLine();
   Console.Write("Digite apellido: {0}",x);
   n.ape[x]=Console.ReadLine();
  }
  Console.WriteLine("Datos Introducidos");
  string a=Console.ReadLine();
  Console.WriteLine("Cedula          Nombre          Apellido");
  Boolean b=true;
  for(int x=1;x<=num;x++)
  {
   if(b=true)
   {
    SetConsoleTextAttribute(hConsole, 15);
    Console.WriteLine("{0}          {0}          {0}",n.cedula[x].ToString(),n.nombre[x],n.ape[x]);
    Console.WriteLine();
    b=false;
   }
   else
   {
    SetConsoleTextAttribute(hConsole, 15);
    Console.WriteLine("{0}          {0}          {0}",n.cedula[x].ToString(),n.nombre[x],n.ape[x]);
    Console.WriteLine();
    b=true;
   }
  }
  a=Console.ReadLine();
 }
}
}
me dicen que el problema esta en la estructura, pero realmente no se que es
  #4 (permalink)  
Antiguo 06/04/2005, 10:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
mm, no veo que el problema sea la estructura.. mas bien pienso que va a saltar una excepcion en el tamaño de tus arrays...estás empezando en el índice 1 y recuerda que los arrays por default empiezan en cero.


Modifica ésto:

Cita:
for(int x=1;x<=num;x++)
{
Console.Write("# de cedula: {0}",x);
n.cedula[x]=Console.ReadLine();
Console.Write("Digite nombre: {0}",x);
n.nombre[x]=Console.ReadLine();
Console.Write("Digite apellido: {0}",x);
n.ape[x]=Console.ReadLine();
}
Por ésto:

for(int x=0;x<num;x++)
{
Console.Write("# de cedula: {0}",x);
n.cedula[x]= Convert.ToInt32(Console.ReadLine());
Console.Write("Digite nombre: {0}",x);
n.nombre[x]=Console.ReadLine();
Console.Write("Digite apellido: {0}",x);
n.ape[x]=Console.ReadLine();
}

al igual que ésto:
Cita:
for(int x=1;x<=num;x++)
{
if(b=true)
{
SetConsoleTextAttribute(hConsole, 15);
Console.WriteLine("{0} {0} {0}",n.cedula[x].ToString(),n.nombre[x],n.ape[x]);
Console.WriteLine();
b=false;
}
Por ésto:

for(int x=1;x<num;x++)
{
if(b)
{
SetConsoleTextAttribute(hConsole, 15);
Console.WriteLine("{0} {0} {0}",n.cedula[x].ToString(),n.nombre[x],n.ape[x]);
Console.WriteLine();
b=false;
}

Checalo y me dices que tal te fue.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:48.