C sharp - ¿Utilizar campos directamente o 'struct'?

 
Vista:
Imágen de perfil de Luis
Val: 50
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Utilizar campos directamente o 'struct'?

Publicado por Luis (15 intervenciones) el 29/03/2021 19:27:35
Hola a todos,

Estoy tratando de resolver un ejercicio sobre una agenda de contactos, cuyo enunciado es el siguiente:

40. Definir un registro que permita almacenar el nombre y el teléfono de una persona. Crear un
vector de K registros y mostrar un menú que permita añadir personas a la agenda, así como
buscar teléfonos. K se declarará como constante.


Bueno, aparte del chocho que para mí supone diferenciar entre registro/vector, se me plantea otra duda, y es si debo utilizar campos directamente o bien a través de 'struct'.

Os dejo las dos opciones que he escrito para que me podáis orientar al respecto.
Como siempre, muchas gracias por vuestra atención.

OPCIÓN A:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/// Opción A: utilizando campos directamente
 
 
using System;
 
namespace _40B
{
    class Agenda
    {
        string nombre;
        string telefono;
 
        static void Main()
        {
            // Establecer el nº de registros
            const int K = 100;
 
            // Crear vector 'contactos' de K registros
            Agenda[] contactos = new Agenda[K];
 
            // Reservar memoria para K vectores/registros
            for (byte i = 0; i < K; i++)
            {
                contactos[i] = new Agenda();
            }
        }
    }
}


OPCIÓN B:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/// Opción B: utilizando 'struct'
 
 
using System;
 
namespace _40B
{
    class Agenda
    {
        struct contacto
        {
            string nombre;
            string telefono;
        }
 
        static void Main()
        {
            // Establecer el nº de registros
            const int K = 100;
 
            // Crear el vector 'listin' con K registros
            contacto[] listin = new contacto[K];
 
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Utilizar campos directamente o 'struct'?

Publicado por Miguel (143 intervenciones) el 29/03/2021 20:22:49
Debes separar tus elementos y metodos en sus respectivas clases :
//Nota: en lugar dde list declaralo como array asi es como lo solicita el ejercicio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//pseudo codigo
struct Contacto
        {
            string nombre;
            string telefono;
        }
 
public class Agenda
{
 private  List<Contacto> _contactos;
//constructor
 public Agenda()
{
   _contactos= new List<Contacto>();
}
 
 //Metodos
 public void Agregar(Contacto nuevoContacto)
{
 
    _contactos.Add(nuevoContacto);
}
 
public Contacto BuscarContacto(string telefono)
{
  //por implementar y retornar el contacto por telefono
}
}
 
//la clase donde se encuentra Main se agrega el menu
   static void Main()
        {
               //por implementar el menu
 
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis
Val: 50
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Utilizar campos directamente o 'struct'?

Publicado por Luis (15 intervenciones) el 29/03/2021 20:48:32
Gracias Miguel,

Me aparecen dos errores (subrayados) en dos métodos:

public void Agregar(Contacto nuevoContacto)
// incoherencia de accesibilidad: el tipo de parámetro 'Contacto'
// es menos accesible que el método 'Agenda.Agregar(Contacto'

public Contacto BuscarContacto(string telefono)
// Incoherencia de accesibilidad: el tipo de valor devuelto 'Contacto'
// es menos accesible que el método 'Agenda.BuscarContacto(string)'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Utilizar campos directamente o 'struct'?

Publicado por Miguel (143 intervenciones) el 29/03/2021 22:09:52
En mi nota inicial dice
//pseudo codigo

esto no funciona cuando compilas, solo es un borrador de una idea para que
tu lo escribas correctamente.
- Tu primer error se debe a que debes declarar tu estructura como publica
y el metodo de busqueda debe devolver un objeto Contacto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis
Val: 50
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Utilizar campos directamente o 'struct'?

Publicado por Luis (15 intervenciones) el 30/03/2021 07:55:20
Gracias Miguel,

Intentaré solucionarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar