DPRN1_U1_A2_LUQG

Share Embed Donate


Short Description

Descripción: Programación .NET...

Description

UnADM Universidad Abierta y a Distancia de México

Ingeniería en Desarrollo de Software Programación NET I Unidad 1 : Actividad 2

Luis Antonio Quezada González AL12506779

Categoría Primario

Operador x.y

f(x)

a[x] x++

x--

new typeof

checked

unchecked

default(T)

delegate

Operadores C# Descripción El operador de punto (.) se utiliza para el acceso a miembros. El operador de punto especifica un miembro de un tipo o espacio de nombres. Por ejemplo, el operador de punto se utiliza para tener acceso a métodos específicos dentro de las bibliotecas de clases de .NET Framework: Además de usarlos para especificar el orden de las operaciones en una expresión, los paréntesis se utilizan para realizar las siguientes tareas: Especificar conversiones o conversiones de tipo. Invocar métodos o delegados. Los corchetes ([]) se utilizan para matrices, indizadores y atributos. También se pueden utilizar con punteros. El operador de incremento (++) incrementa su operando en 1. El operador de incremento puede aparecer antes o después de su operando. El operador de decremento (--) decrementa su operando en 1. El operador de decremento puede aparecer antes o después de su operando: --variable y variable--. La primera forma es una operación de decremento prefijo. El resultado de la operación es el valor del operando "después" de haber sido decrementado. La segunda forma es una operación de decremento postfijo. El resultado de la operación es el valor del operando "antes" de haber sido decrementado. Se utiliza para crear objetos e invocar constructores. Por ejemplo: Class1 obj = new Class1(); Obtenga el objeto System.Type para un tipo. Una expresión typeof se presenta de la siguiente forma: System.Type type = typeof(int); La palabra clave checked se usa con el fin de habilitar explícitamente la comprobación de desbordamiento para operaciones aritméticas y conversiones de tipo integral. La palabra clave unchecked se utiliza con el fin de suprimir la comprobación de desbordamiento para operaciones aritméticas y conversiones de tipo integral. Un problema asociado a las clases y métodos genéricos es la forma de asignar un valor predeterminado a un tipo parametrizado T cuando no se tiene por anticipado la siguiente información: Si T será un tipo de referencia o un tipo de valor. Si T es un tipo de valor, si será un valor numérico o un struct. Dada una variable t de un tipo parametrizado T, la instrucción t = null sólo es válida si T es un tipo de referencia y t = 0 sólo funcionará con los tipos de valor numérico, pero no con los structs. La solución es utilizar la palabra clave default, que devolverá null para los tipos de referencia y cero para los tipos de valor numérico. En el caso de los structs, devolverá cada miembro del struct inicializado con el valor cero o null, dependiendo de si son tipos de valor o de referencia. Para los tipos de valor que aceptan valores NULL, default devuelve Nullable, que se inicializa como cualquier struct. En versiones de C# anteriores a la versión 2.0, la única manera de declarar un delegado era utilizar métodos con nombre. C# 2.0 introdujo los métodos anónimos, mientras que, en C# 3.0 y versiones posteriores, las expresiones lambda reemplazan a los métodos anónimos como la manera preferente de escribir código insertado. No obstante, la información sobre los métodos anónimos de este tema también se aplica a las expresiones lambda. Hay un caso en el que un método anónimo proporciona una funcionalidad que no se encuentra en las expresiones lambda. Los métodos anónimos permiten omitir la lista de parámetros. Esto significa que los métodos anónimos pueden

sizeof

-> Unario

+x

-x

!x

~x

++x

--x

(T)x

Await

convertirse en delegados con diversas firmas. Esto no es posible con expresiones lambda. Se usa para obtener el tamaño en bytes de un tipo no administrado. Los tipos no administrados incluyen los tipos integrados que se muestran en la tabla que figura a continuación, además de estos: Tipos de enumeración Tipos de puntero Structs definidos por el usuario que no contienen ningún campo o propiedad que sea un tipo de referencia El operador -> combina la desreferenciación de un puntero y el acceso a un miembro. Los operadores unarios + se encuentran predefinidos para todos los tipos numéricos. El resultado de una operación unaria + aplicada a un tipo numérico es simplemente el valor del operando. Los operadores + binarios se encuentran predefinidos para los tipos numéricos y de cadena. Para tipos numéricos, + calcula la suma de sus dos operandos. Cuando al menos uno de los operandos es de tipo string, + concatena las representaciones de tipo string de los operandos. Los tipos delegados también proporcionan un operador binario +, el cual realiza la concatenación de delegados. Los tipos definidos por el usuario pueden sobrecargar los operadores unario + y binario +. Las operaciones en tipos enteros se suelen permitir en enumeraciones. Los operadores unarios - se encuentran predefinidos para todos los tipos numéricos. El resultado de una operación unaria - aplicada a un tipo numérico es la negación numérica del operando. Los operadores binarios - están predefinidos para todos los tipos numéricos y de enumeración de modo que restan el segundo operando del primero. Los tipos delegados también proporcionan un operador binario -, el cual realiza la eliminación de delegados. Los tipos definidos por el usuario pueden sobrecargar los operadores unario y binario El operador lógico de negación (!) es un operador unario que niega su operando. Está definido para el tipo bool y devuelve true si, y sólo si, su operando es false. El operador ~ realiza una operación de complemento bit a bit en su operando, lo que tiene el efecto de invertir cada bit. Los operadores de complemento bit a bit están predefinidos para int, uint, long y ulong. El operador de incremento (++) incrementa su operando en 1. El operador de incremento puede aparecer antes o después de su operando: El operador de decremento (--) decrementa su operando en 1. El operador de decremento puede aparecer antes o después de su operando: --variable y variable--. La primera forma es una operación de decremento prefijo. El resultado de la operación es el valor del operando "después" de haber sido decrementado. La segunda forma es una operación de decremento postfijo. El resultado de la operación es el valor del operando "antes" de haber sido decrementado. Además de usarlos para especificar el orden de las operaciones en una expresión, los paréntesis se utilizan para realizar las siguientes tareas: El operador await se aplica a una tarea en un método asincrónico para suspender la ejecución del método hasta que se complete la tarea esperada. La tarea representa el trabajo en curso. El método asincrónico en el que se utiliza await debe modificarse mediante la palabra clave async. Este tipo de método, definido

&x

*x

Multiplicativo

x*y

x/y

Sumatorio Desplazamiento

x%y x+y x-y xy

Comprobación de tipos y relacionales

xy

x=y

mediante el modificador async y que generalmente contiene una o más expresiones await, se denomina método asincrónico. El operador & unario devuelve la dirección de memoria de su operando (requiere un contexto unsafe). Los operadores & binarios están predefinidos para los tipos enteros y bool. Para tipos enteros, & calcula la operación AND bit a bit lógica de sus operandos. Para operandos de tipo bool, & calcula la operación lógica AND de sus operandos; es decir, el resultado estrue si, y sólo si ambos operandos son true. El operador & evalúa ambos operadores sin tener en cuenta el valor del primero. Por ejemplo: int i = 0; if (false & ++i == 1) { // i is incremented, but the conditional // expression evaluates to false, so // this block does not execute. } El operador * también se utiliza para declarar los tipos de puntero y para desreferenciar los punteros. Este operador sólo se puede utilizar en contextos no seguros, indicados por el uso de la palabra clave unsafe, y que requieren la opción del compilador /unsafe. El operador de desreferenciación también se conoce como el operador de direccionamiento indirecto. Los tipos definidos por el usuario pueden sobrecargar el operador binario * (vea operator (Referencia de C#)). Cuando se sobrecarga un operador binario, el operador de asignación correspondiente, si existe, también se sobrecarga de modo implícito. Operador de multiplicación (*) que calcula el producto de sus operandos. Además, operador de desreferenciación que permite leer y escribir en un puntero. El operador de división (/) permite dividir su primer operando por su segundo operando. Todos los tipos numéricos poseen operadores de división predefinidos. El operador & puede funcionar como operador unario o binario. El operador + puede funcionar como operador unario o binario. El operador - puede funcionar como operador unario o binario. El operador de desplazamiento a la izquierda () desplaza su primer operando a la derecha el número de bits especificado por su segundo operando. Todos los tipos numéricos y de enumeración definen un operador relacional "menor que" () que devuelve true si el primer operando es mayor que el segundo y false en caso contrario. Todos los tipos numéricos y de enumeración definen un operador relacional "menor o igual que" (=) que devuelve true si el primer operando es mayor o igual que el segundo, y devuelve false en caso contrario.

is

as

Igualdad

x==y

x!=y

AND logico

x&y

XOR logico

x^y

OR logico

x|y

AND condicional

x&&y

OR condicional

x||y

Uso combinado de Null

x??y

Condicional

?:

Expresion y asignación de lambada

x = y

x += y x-=y x*=y x/=y

Comprueba si un objeto es compatible con un tipo determinado. Por ejemplo, el código siguiente puede determinar si un objeto es una instancia del tipo MyObject o un tipo que se deriva de MyObject: Puede utilizar el operador de as para realizar algunos tipos de conversiones entre los tipos de referencia compatibles o tipos que aceptan valores NULL. El siguiente fragmento de código muestra un ejemplo. Para los tipo de valor predefinidos, el operador de igualdad (==) devuelve true si los valores de sus operandos son iguales y false en caso contrario. Para los tipos de referencia, excepto string, == devuelve true si sus dos operandos se refieren al mismo objeto. Para el tipostring, == compara los valores de las cadenas. El operador de desigualdad (!=) devuelve false si sus dos operandos son iguales; en caso contrario, devuelve true. Los operadores de desigualdad están predefinidos para todos los tipos, incluidos string y object. Los tipos definidos por el usuario pueden sobrecargar el operador != El operador & unario devuelve la dirección de memoria de su operando (requiere un contexto unsafe). Los operadores & binarios están predefinidos para los tipos enteros y bool. Para tipos enteros, & calcula la operación AND bit a bit lógica de sus operandos. Para operandos de tipo bool, & calcula la operación lógica AND de sus operandos; es decir, el resultado estrue si, y sólo si ambos operandos son true. Los operadores binarios ^ están predefinidos para tipos enteros y bool. Para los tipos enteros, ^ calcula la operación OR exclusiva bit a bit de sus operandos. Para los operandos bool, ^ calcula la operación OR exclusiva lógica de sus operandos; es decir, el resultado es true si, y sólo si, exactamente uno de sus operandos es true. Binary | están predefinidos para los tipos enteros y bool. Para los tipos enteros, |calcula la operación OR bit a bit de sus operandos. Para los operandos de tipo bool. | calcula la operación lógica OR de sus operandos; es decir, el resultado es false si, y solo si, ambos operandos son false. El operador AND condicional (&&) realiza una operación lógica AND de sus operandos de tipo bool, pero sólo evalúa su segundo operando si es necesario. Condicional- operador OR (||) realiza una disyunción lógica de sus operandos bool . Si el primer operando se evalúa como true, el segundo operando no se evalúa. Si el primer operando se evalúa como false, el segundo operador determina si OR la expresión de conjunto se evalúa como true o a false. Al operador ?? se le llama el operador de uso combinado de NULL. Dicho operador devuelve el operando izquierdo si no es NULL; de lo contrario, devuelve el operando derecho. El operador condicional (?:) devuelve uno de dos valores según el valor de una expresión booleana. A continuación se muestra la sintaxis del operador condicional. El operador de asignación (=) almacena el valor del operando situado a su derecha en la ubicación de almacenamiento, propiedad o indizador indicados por el operando situado a su izquierda y devuelve el valor como resultado. Los operandos deben ser del mismo tipo (o el operando de la derecha se debe poder convertir implícitamente al tipo del operando de la izquierda). El operador de asignación y suma. Una expresión que utiliza el operador de asignación -=, por ejemplo El operador de asignación y multiplicación binario. El operador de asignación y división.

x%=y x&=y x|=y x^=y x=y =>

Tipo de Conversion Conversiones implícitas

El operador de asignación del resto. El operador de asignación y AND. El operador de asignación OR. El operador de asignación y OR exclusivo. El operador de asignación y desplazamiento a la izquierda. El operador de asignación y desplazamiento a la derecha. El token => se denomina operador lambda. Se utiliza en expresiones lambda para separar las variables de entrada del lado izquierdo del cuerpo lambda del lado derecho. Las expresiones lambda son expresiones insertadas similares a los métodos anónimos, pero más flexibles; se utilizan mucho en las consultas de LINQ que se expresan en la sintaxis del método. Tipos de Conversion Descripcion En los tipos numéricos integrados, puede realizarse una conversión implícita cuando el valor que se va a almacenar puede ajustarse a la variable sin necesidad de truncamiento o redondeo. Por ejemplo, una variable de tipo long (entero de 8 bytes) puede almacenar cualquier valor que pueda almacenar a su vez un elemento int (4 bytes en un equipo de 32 bits). En el ejemplo siguiente, el compilador convierte implícitamente el valor de la derecha en un tipo long antes de asignarlo a bigNum.

// Implicit conversion. num long can // hold any value an int can hold, and more! int num = 2147483647; long bigNum = num; Conversiones explícitas

Sin embargo, si no se puede realizar una conversión sin riesgo de perder información, el compilador requiere que se realice una conversión explícita, denominada conversión de tipo. Una conversión de tipo es una manera de informar al compilador de forma explícita de que pretende realizar la conversión y que está al tanto de que puede producirse una pérdida de datos. Para realizar una conversión de tipo, especifique entre paréntesis el tipo al que se va a aplicar dicha conversión delante del valor o la variable que se va a convertir. El programa siguiente convierte un tipo double a un tipo int. El programa no se compilará sin el operador de conversión de tipo. class Test { static void Main() { double x = 1234.7; int a; // Cast double to int. a = (int)x; System.Console.WriteLine(a); } }

Conversiones numericas explicitas validas De:

A:

sbyte

byte , ushort, uint, ulong o char

byte

Sbyte o char

short

sbyte , byte, ushort, uint, ulong o char

ushort

sbyte , byte, short o char

int

sbyte , byte, short, ushort, uint, ulong,o char

uint

sbyte , byte, short, ushort, int o char

Long

sbyte , byte, short, ushort, int, uint, ulong o char

ulong

sbyte , byte, short, ushort, int, uint, long o char

char

sbyte , byte o short

float

sbyte , byte, short, ushort, int, uint, long, ulong, char o decimal

double

sbyte , byte, short, ushort, int, uint, long, ulong, char, float o decimal

decimal

sbyte , byte, short, ushort, int, uint, long, ulong, char, float o double

Fuente: https://msdn.microsoft.com/es-es/library/618ayhy6.aspx

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF