Muchas variables son para almacenar una cosa, como un número o una frase. Un objeto puede tener un montón de propiedades, el almacenamiento de una gran cantidad de información acerca de un solo concepto. A veces, sin embargo, sólo hay que seguir la pista de una gran lista de cosas. Ahí es donde las clases de colección vienen en.
Las clases de colección en C # son impresionantes, ya que pueden ayudar a mantener una lista de elementos, o un grupo de claves y valores, y proporcionar la búsqueda, proctoring, y las herramientas de mantenimiento en general de forma gratuita. Eso es mucho más fácil que escribir los dos "clientes ordenar por apellido 'centésima método de este mes.
C # tiene clases básicas de recolección, clases de colección genéricos, y clases de colección concurrentes. Estos últimos son de hilo de seguridad de las operaciones en un entorno multiprocesador. Todas estas clases de colección son útiles si usted sabe dónde y cuándo usarlos.
Colecciones regulares
Colecciones regulares almacenar cosas sin tipo para usted. Si usted no sabe exactamente lo que vas a almacenar, colecciones regulares son para usted. La mayoría de todo en estas clases se almacenan como objetos.
Clase | Descripción |
---|
Lista de arreglo | Esta es sólo una colección sencilla de objetos cuya sizeis declarado inicialmente, y que el tamaño aumenta, según sea necesario (perono disminuye). |
Tabla de picadillo | Sólo una tabla de dos columnas de claves y valores, donde las parejas arelinked para clasificar una recuperación. |
Cola | Un primero en entrar, último en salir (FIFO) lista de elementos. Gran para la materia proceso storingprogram. |
Pila | Como una cola, pero Last In First Out (LIFO). |
Colecciones genéricas
C # 2.0 colecciones genéricas introducidas. Colecciones genéricas permiten almacenar colecciones con tipo de artículos, como se declara en tiempo de ejecución.
Clase | Descripción |
---|
Diccionario | Sólo un HastTable, excepto escrito, por lo que no tiene tostore objeto, objetos. TKey y TValue son tipos, por lo que puede almacenar-lista de si quieres. |
Lista | Esta es la nueva matriz. Es una lista mecanografiada de artículos. Byfar, la clase de colección más común utilizado. Es la default.ifdon't necesita una lista de las personas, es una lista. |
Cola | Similar a la cola sin tipo, pero, bueno, a máquina! |
SortedList | Este diccionario impresionante implementa IComparable para que canbe ordenan. |
Pila | Al igual que la pila sin tipo, excepto mecanografiadas. |
Clases de colección concurrentes
Por último, las clases concurrentes se aseguran de que los objetos se almacenan en una lista están disponibles en cualquier espacio de la memoria, no importa qué procesador. Es un reparto más grande de lo que piensas.
Clase | Descripción |
---|
BlockingCollection | Es una clase thread-safe que prevenir un threadfrom alterar un campo que se puede acceder en otra cosa thread.Brilliant, de verdad. |
ConcurrentDictionary | Hablando de brillantes, este conjunto de pares clave / valor puede beaccessed por varios subprocesos. |
ConcurrentQueue | Recuerde que la pila FIFO? Sí. Éste es genérico y multi-hilo. |
ConcurrentStack | Las colecciones orquestadas son útiles. They'rebeneficial para la memoria, por una cosa. De todos modos, éste es LIFO andthread-seguro, también. |
Configuración de C #
Todo un espacio de nombres de clases está diseñado para configurar las aplicaciones escritas en cualquier lenguaje .NET, como C #, VB.NET, o cualquiera de varios otros. Los objetos dentro de la misma son, por decir lo menos, un poco difícil de navegar. La configuración en aplicaciones .NET tiene lugar en un archivo .config. Este archivo XML con formato tiene una nodo, y una gran cantidad de nodos específicos del proyecto dentro. Obtener una referencia a la configuración requiere una llamada a OpenExeConfiguration.
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration () -
Una vez hecho esto, obtener una referencia a una sección es bastante sencillo. los GetSection método sólo se necesita una cadena que es el nombre del nodo, y debido a que el archivo de configuración es sólo texto, puede tomar en cualquier momento.
sectionname = var "Lo que sea!" - section = (System.Configuration.AppSettingsSection) config.GetSection System.Configuration.AppSettingsSection (sectionname) -
Puede añadir secciones en el fichero de configuración usando las herramientas de manipulación de XML en el marco. Puede utilizar un grupo preestablecido en secciones para la funcionalidad correspondiente.
Sección | Descripción |
---|
Puesta en marcha | Describe la versión .NET de usar. |
Tiempo de ejecución | Enumera los elementos de .NET para enlazar con el ejecutable. |
La red | Describe proxy y otras configuraciones de red. |
Criptografía | Un lugar para mantener los valores accesibles referencia a los recursos criptográficos |
Configuración | La sección más utilizado. Es el lugar donde usted guarda secciones personalizadas del archivo de configuración. |
Traza / Depuración | Dos opciones que le permiten configurar el seguimiento y registro. |
Configuración de aplicaciones (appsettings) | Aplicación con ámbito cosas como cadenas de conexión de base de datos. |
Configuración del Web (websettings) | Detalles específicos de ASP.NET. |
Programación asincrónica
Una gran cantidad de Windows 8 se trata de ser rápido y fluido. La forma de hacerlo es mediante el uso de métodos asincrónicos en devoluciones de llamada de la funcionalidad de larga duración. El problema con esto es que en C #, la mejor manera de poner en práctica un método asíncrono es con roscado. Pero no siempre se puede confiar en que los elementos de una operación de roscado volverán. Tiene que haber algún tipo de control si desea que los usuarios sean capaces de sentir como que hay un cierto control.
Ingrese lasincronizar y laespera. lasincronizar se utiliza para declarar una función asíncrona, que devuelve un Tarea. Todas asíncrono métodos deben contener al menos un aguardan expresión. esperar dice C # para tener código hace referencia y ejecutarlo en un hilo separado que el hilo de usuario. La tabla desglosa las nuevas piezas asíncronos de la lengua.
Declaración | Descripción |
---|
asíncrono | Un modificador que muestra el compilador que la función itmodifies es asíncrona. |
esperar | Un operador que suspende la ejecución de la containingmethod hasta que completa la tarea esperada. |
Tarea | Representa una operación asincrónica. |
Tarea | Una operación asincrónica que devuelve un valor. |
Task.ContinueWith | A continuación que se inicia después de la operación en el Taskis completó. |