viernes, 9 de noviembre de 2018

C#

C Sharp



C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma.NET, que después fue aprobado como un estándar por la ECMA e ISO. C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.

MVC


Modelo


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace name.Models
{
    public class Alumno
    {
        public int id {get; set;}
        public String nombre {get;set;}
        public static List<Alumno> Lista()
        {
            var alumnos = new List<Alumno>();
            for (var i = 1; i <= 10; i++)
            {
                alumnos.Add(new Alumno()
                {
                    id     = i,
                    nombre = "Alumno" + i
                });
            }
            return alumnos;
        }
    }
}

Controlador

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using adriantuncetina.Models;
namespace name.Controllers
{
    public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            ViewBag.ImprimirVariable = "Hola Mundo Index";
            ViewBag.ImprimirVariableLista = Alumno.Lista();
            return View();
        }
        // GET: Test
        public ActionResult VistaControl()
        {
            ViewBag.ImprimirVariableLista = Alumno.Lista();
            ViewBag.ImprimirVariable = "Hola Mundo con Vista Control";
            return View();
        }
        // GET: Test
        public ActionResult FormControl(int id=0, string caja="")
        {
            ViewBag.ImprimirVariable = "Hola Mundo con Vista Control"+ id + " " + caja;
            return View();
        }

    }
}


Vista


<p>@ViewBag.ImprimirVariable;</p>
@using (Html.BeginForm("FormControl", "Test", FormMethod.Post))
{
  ///@Html.TextBoxFor("", new { @class = "form-control", disabled="disabled" })
  ///
  <input type="text" id="caja" name="caja" value="@ViewBag.ImprimirVariable" class="form-control" />
  <input type="submit" value="enviar" />
}

Expresiones Lambda

¿Qué son las expresiones Lambda?


Son funciones anónimas que se usan frecuentemente para crear delegates en LINQ. Son simples, sin ninguna declaraciones, es decir, sin modificadores de acceso, la declaración de valor de retorno y nombre.

Están en el lado derecho del operador =>. Una expresión lambda devuelve el resultado de la evaluación de la condición.


¿Por qué necesitamos expresiones lambda?


Más de uno se estará preguntando: ¿necesitamos un método sin un nombre? La respuesta es conveniencia.

Es una especie de taquigrafía que permite abreviar el método en el mismo lugar que se usará. Nos ahorra tiempo, espacio y además, es fácil de revisar el código. Simplemente cuando te acostumbres; tendrás los métodos más comunes a un punto y espacio de tu objeto.


 ¿Cómo definimos una expresión lambda?


La definición básica es: Parámetro => Código ejecutado 

Veamos algunos ejemplos:

Un expresión bastante simple.

x => x == 5

Aquí podemos observar que al tener dos parámetros, necesitamos envolverlo en paréntesis separados por coma.

(x, y) => x == y

Aunque una de las feature que tenemos con los lambda expressions es el olvidarnos de los tipos, a veces, es difícil o imposible deducirlo por el mismo. Para ello, habrá que expresarlo de la siguiente manera:

(int x, string s) => s.Length > x

Para especificar cero parámetros de entrada, utilice paréntesis vacíos:

() => GeekyMethod()

Ejemplo un poco más complejos. El elemento devuelve todos los elementos de la matriz de números hasta encontrar un número cuyo valor sea menor que su posición.

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);