Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: irvincnt93 en 20 Febrero 2015, 01:48 am



Título: qué me representa public static List<.... > .....{ }
Publicado por: irvincnt93 en 20 Febrero 2015, 01:48 am
tengo este código que encontré en una página, pero no se que represente el List <> despues del public static.. ayuda porfaaa.

Código
  1. public static List<Artist> GellAllArtist()
  2. {
  3. string sql = @"SELECT ArtistId, Name FROM Artist ORDER BY Name ASC";
  4. List<Artist> list = new List<Artist>();
  5. using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
  6. {
  7. conn.Open();
  8. SqlCommand cmd = new SqlCommand(sql, conn);
  9. SqlDataReader reader = cmd.ExecuteReader();
  10. while (reader.Read())
  11. {
  12. list.Add(LoadArtist(reader));
  13. }
  14. }
  15. return list;
  16. }

Mod: Mensaje modificado, al publicar código usa etiquetas GeSHi


Título: Re: qué me representa public static List<.... > .....{ }
Publicado por: Usuario Invitado en 20 Febrero 2015, 02:22 am
Los métodos tienen un tipo de retorno.

Código:
scope | return type | name (parameters)

  • Scope: Es el ámbito de visibilidad de la función: Puede ser public, private, protected.
  • Return type: Es el tipo de dato que retornará dicho método. No hay restricciones, un método puede devolver cualquier objeto. Si no se desea que devuelva algo, se utiliza void.
  • Name: Nombre del método.
  • Parameters: Son los datos que recibe dicha función para realizar un determinado proceso. Nuevamente, no hay restricciones, puede recibir cualquier tipo de objeto.

Por lo tanto, la declaración del método:

Código
  1. public static List<Artist>

Indica que:

  • Es un método público. Puede ser accedido desde cualquier ámbito de la aplicación.
  • Dicho método es estático. Es decir, existe independientemente del exterior. No necesita un objeto para existir; existe a partir de que el ClassLoader cargue la clase.
  • Dicho método devuelve un objeto tipo Lista que contiene objetos Artist.

La clase List en C# se define de la siguiente manera:

Código:
public class List<T> ...

Donde T representa a un tipo de elemento. Ésto se llama Generics y se usa en las listas porque cuando usamos objetos List, a menudo queremos restringir el tipo de elemento que deseamos que guarde la lista para un fácil manejo al momento de obtener la colección.

En éste caso, Artist es una clase:

Código
  1. public class Artist {
  2.    // properties
  3.  
  4.    // methods
  5.  
  6. }

Y la lista que devuelve el método está llena de varios objetos Artist. Por ejemplo:

Código
  1. List<Artist> artistList = new List<Artist>();
  2.    artistList.Add(new Artist("Slipknot", "otra propiedad", 35));
  3.    ...

El método Add de la clase List permite agregar un objeto a la colección.

Espero se haya entendido.

PD: Me equivoqué, no me di cuenta que era C# y expliqué para Java aunque he intentado convertir la explicación a C#. No sé mucho C# pero en éstos aspectos son muy parecidos con Java. Si Elektro o alguien ve algo mal pues que me corrijan ^^