Prefacio
Este artículo es una introducción a C#. Es un resumen basado en cierto conocimiento del lenguaje C o C++. Por lo tanto, se omitirán muchos conocimientos básicos del lenguaje C, pero se omitirán algunos conocimientos exclusivos de C# o relativamente raros o importantes en el lenguaje C. También se puede resumir en la entrada del blog.
Tabla de contenido
a. Conversión entre mismos tipos
B. Conversión entre diferentes tipos grandes.
a. Transferencia forzada entre paréntesis
b.El método Parse convierte a la fuerza el tipo de cadena en el tipo correspondiente
D. Convertir otros tipos a cadenas.
1.cadena se puede concatenar usando +
2. Método de empalme de cuerdas 2
3. Empalme de impresión de consola
1. Entre diferentes tipos numéricos
2. Tipo especial char string bool
2. Reglas de cortocircuito del operador lógico
4. Inversión de bits ~ (solo entiéndelo)
5. Muévete a la izquierda << y muévete a la derecha >> (simplemente entiéndelo)
16. hacer mientras declaración
1. Entrada y salida
- Console.WriteLine() imprime una línea de información y automáticamente ajusta la línea
- Console.Write() no ajustará automáticamente la línea después de imprimir la información.
- Entrada del usuario Console.ReadLine(), haga clic en Enter para finalizar
- Console.ReadKey() finalizará cuando el usuario presione el teclado en cualquier momento
2. Variables
1. Dobla el código
Función: dobla el código envuelto por la mitad para evitar una edición de código complicada.
#region MyRegion
...
#endregion
2. Declarar variables
Fórmula: tipo de variable nombre de variable = valor inicial;
Hay 14 tipos de variables:
a.Variable entera con signo
Puede almacenar números positivos y negativos y 0. El rango aproximado se proporciona a continuación (se informará un error si el valor excede el rango al asignar)
- sbyte -128~-127
- int -2,1 mil millones ~ 2,1 mil millones
- corto -32768~32767
- largo -9 billones ~ 9 billones
Código de muestra
sbyte a = 1;
Console.WriteLine("存储的数:"+a); //输出之间的连接用+
B. Variable entera sin signo
Puede almacenar un cierto rango de 0 y números positivos.
- bytes 0~255
- uint 0~4,2 mil millones
- ucorto 0~65535
- ulong 0~18 billones
c.Número de punto flotante
- float almacena 7 u 8 dígitos significativos, dependiendo del redondeo del compilador comenzando con dígitos distintos de cero de izquierda a derecha.
- Double almacena entre 15 y 17 dígitos significativos. El tipo doble predeterminado para declarar decimales en C# es
- almacenes decimales 27~28 bits
float f = 0.1234f; //后面要加f 大小写均可
double d = 0.12456434;
decimal de = 0.124543534234t254m; //后面要加m 大小写均可
d.Tipo especial
- El valor de la variable bool es verdadero o falso, lo que indica el tipo de datos verdadero o falso.
- char almacena un solo carácter y encierra el valor que se asignará entre comillas simples.
- cadena almacena la cadena entre comillas dobles para encerrar el valor que se asignará.
string s1="hello", s2="world", s3="good"; //多个变量同时声明
3. Constantes
Declaración de constantes (características: debe inicializarse y no modificarse)
tipo de variable constante nombre de variable = valor inicial;
const int i = 10;
4. Personajes de escape
Fórmula: \carácter
Los caracteres de escape más utilizados son los siguientes:
apóstrofe |
\' |
Doble comillas |
\" |
nueva línea |
\norte |
barra oblicua |
\\ |
Tabulación de pestañas | \ t |
retroceso | \b |
5. Conversión de tipo
1. Conversión implícita
Reglas: (conversión automática entre diferentes tipos) de rango grande a rango pequeño
a. Conversión entre mismos tipos
long a = 1;
int b = 2;
a = b;//int隐式转换为long
b = a;//这句是不对的!小范围不能转大范围
Para los números de punto flotante, cabe señalar que el tipo decimal no puede utilizar conversión implícita para almacenar doble y flotante, pero el flotante se puede convertir a doble. No existe una conversión implícita entre tipos especiales bool, char y string.
B. Conversión entre diferentes tipos grandes.
! Las variables firmadas no se pueden convertir implícitamente en variables sin firmar
Ejemplo de código de error:
ushort us2 = 1;
sbyte sb2 = 1;
us2 = sb2;//错误代码!不能转换
! Las variables sin signo se pueden convertir en variables con signo, pero el requisito previo es que el alcance cubierto por la variable con signo debe incluir el tipo sin signo.
int i2 = 1;
uint ui2 = 1;
byte b2 = 1;
i2 = ui2;// 错误!无法覆盖无符号数的全部范围
i2 = b2;// 正确代码
- Los números de coma flotante pueden cargar cualquier tipo de número entero, ya sea con o sin signo (el decimal no puede almacenar implícitamente números flotantes y dobles, pero puede almacenar implícitamente números enteros)
- Los números enteros no pueden almacenar implícitamente números de punto flotante
- El tipo bool no se puede convertir implícitamente a otros tipos.
- Char no puede almacenar implícitamente variables de otros tipos, pero el tipo char se puede convertir al tipo int y el tipo int se puede convertir implícitamente a otros tipos.
2.Conversión explícita
Requiere manipulación manual de yesos.
Fórmula: tipo de variable nombre de variable = (tipo de variable) variable
a. Transferencia forzada entre paréntesis
(1) Entre las mismas categorías (enteros sin signo, enteros con signo, números de punto flotante), la conversión forzada de corchetes puede causar problemas de rango y excepciones.
short s = 1;
int i = 1;
s = (short)i;
(2) Entre diferentes tipos
- También puede ocurrir una conversión forzada entre firmado y sin firmar, pero pueden ocurrir problemas de rango.
- La conversión de números de coma flotante a enteros es principalmente una cuestión de precisión
- Bool y string no admiten transferencias forzadas.
b.El método Parse convierte a la fuerza el tipo de cadena en el tipo correspondiente
Tipo de variable.Parse("cadena") La cadena debe poder convertirse al tipo correspondiente; de lo contrario, se informará un error
int i4 = int.Parse("123");
float f3 = float.Parse("1.232");
bool b = bool.Parse("true");
int i4 = int.Parse("123.45");//错误语句,会报错!
short s4 = short.parse("300000");//错误语句,超出范围,会报错!
c.Método de conversión
Conversión más precisa entre tipos
Convert.To tipo de destino (variable o constante) La conversión de una cadena al tipo correspondiente debe ser legal y conforme
int a = Convert.ToInt32("12");
int a = Convert.ToInt32(12.2f);//正确语句 且Convert精度更高,可以四舍五入
int a = Convert.ToInt32(ture);//正确语句 true转为1,false转为0
int a = Convert.ToInt32('a');//正确语句 char转为对应ASCII码
int a = Convert.ToInt32("12.2");//错误,不合法转换
- Convertir otros métodos ToSByte(), ToInt16(), ToInt64() //16 representa corto, 32 representa int, 64 representa largo
- De manera similar, si es un tipo sin firmar ToByte(), ToUInt16/32/64()
- Números de coma flotante: ToSingle(), ToDouble(), ToDecimal()
- Tipos especiales: ToBoolean(), ToChar(), ToString()
D. Convertir otros tipos a cadenas.
La función es empalmar e imprimir.
Variable.ToString(); //Se puede utilizar cualquier tipo
string str = 1.ToString();
Console.WriteLine("123"+1+true);//这句话是正确的,后面两个会默认调用ToString方法
6. Captura de excepciones
Utilice la captura de excepciones para evitar que el programa se bloquee cuando el código informe un error.
Sintaxis básica:
try
{
//希望进行异常捕获的代码块
//如果出错执行catch中的
}
catch
{
//catch(Excepetion e) 具体报错跟踪 通过e得到具体错误信息
}
//可选部分
finally
{
//不管有没有错都会执行
}
7. Operadores aritméticos
No es diferente del lenguaje C.
8. Empalme de cuerdas
1.cadena se puede concatenar usando +
string str = "123";
str = str + "456";//正确
str = str + 1;//正确,默认调用1.ToString();
str += "1" + 4 + true;//正确,复合运算和ToString()都起作用
2. Método de empalme de cuerdas 2
string.Format("Contenido a unir", contenido 1, contenido 2);
El contenido que desea unir se reemplaza con {número} con marcadores de posición: 0~n en orden.
string str2;
str2 = string.Format("我是{0},我今年{1}岁,我想要{2}","Daniel",18,"study");
3. Empalme de impresión de consola
Si el siguiente contenido es mayor que el marcador de posición, no se informará ningún error, pero si es menor que el marcador de posición, se informará un error.
Console.WriteLine("A{0},B{1},C{2}",1,ture,false);
9. Operadores condicionales
La notación es la misma que la del lenguaje C.
1. Entre diferentes tipos numéricos
Regla: siéntase libre de hacer comparaciones de operadores condicionales
int i = 5;
float f = 1.2f
short s = 2;
byte by = 20;
uint ui = 222;
// 以下语句都成立 只要是数值都可以进行比较
result = i > f;
result = f < d;
result = f > by;
2. Tipo especial char string bool
Regla: == y != solo se pueden comparar entre el mismo tipo
Dado que char es un tipo entero especial, se puede comparar con su propio tipo, con tipos numéricos y con tipos de caracteres.
char c = 'a';
result = c > 123;
result = c > 'B';
10. Operadores lógicos
Lógico AND: && Lógico OR: || Lógico NO: !
Las notaciones y reglas son las mismas que en el lenguaje C.
1. Atención
Entre los operadores lógicos, el NOT lógico (!) tiene la mayor prioridad y el AND lógico (&&) tiene mayor prioridad que el OR lógico (||).
Los operadores lógicos tienen menor prioridad que los operadores condicionales y los operadores aritméticos.
2. Reglas de cortocircuito del operador lógico
Siempre que el lado izquierdo del AND lógico o del OR lógico satisfaga la condición, no es necesario volver a ejecutar el lado derecho.
Por ejemplo, si el AND lógico es falso, entonces la expresión de la izquierda es falsa y no es necesario volver a ejecutar la del lado derecho.
11. Operadores de bits
Regla: Concatenar dos valores para realizar cálculos de bits y convertir los valores a binarios
1. Operación AND bit a bit &
Regla: si hay 0, entonces 0
int a = 1; // 002
int b = 5; // 101
int c = a & b;
// 001 & 101 = 001 所以c也就是1
2. Operación OR bit a bit |
hay 1 o 1
1|0=1
3.Operación XOR ^
Regla: Igual que 0, diferente que 1
- 1^1 = 1
- 0^0 = 1
4. Inversión de bits ~ (solo entiéndelo)
Escriba delante del valor para convertir el valor a binario
0 cambia a 1, 1 cambia a 0, lo que implica código complementario
5. Muévete a la izquierda << y muévete a la derecha >> (simplemente entiéndelo)
Dejemos que el sistema binario de un número se desplace hacia la izquierda y hacia la derecha.
Mueva algunos bits hacia la izquierda y agregue algunos ceros a la derecha.
Mueva algunos números hacia la derecha y elimine algunos números hacia la derecha.
12. Operador ternario
El principio es equivalente al lenguaje C.
13. si declaración
El principio es equivalente al lenguaje C.
14. declaración de cambio
El principio es equivalente al lenguaje C.
15. declaración mientras
El principio es equivalente al lenguaje C.
16. hacer mientras declaración
El principio es equivalente al lenguaje C.
17. para bucle
El principio es equivalente al lenguaje C.
El siguiente artículo es un resumen de los conocimientos básicos de C#, bienvenido a seguir leyendo.
Resumen de conocimientos básicos de C # (basado en lenguaje C)_Blog de Daniel-blog CSDN