Quando você declara uma nova variável em C#, geralmente a inicializa com um tipo de dado específico. Pode ser um número inteiro, decimal, booleano, string ou outro tipo de dados.
Você pode converter um valor de um tipo de dados para outro. Por exemplo, se você estiver convertendo uma string em um número inteiro, precisará analisar o valor primeiro. Aqui estão algumas maneiras diferentes de converter e analisar valores.
Por que você precisa converter ou analisar dados?
Um exemplo de quando você pode precisar analisar dados é se estiver solicitando a entrada do usuário em um aplicativo de console C#:
Console. WriteLine("Digite sua idade:");
string salario = Console. Leia a linha();
Nesse caso, o usuário inserirá um valor inteiro, mas o aplicativo o armazenará como uma string por padrão. Se você tentasse usar o valor da string em qualquer cálculo, obteria um erro de compilação:
Outro motivo para converter tipos de dados é acessar determinados métodos que estão disponíveis apenas para um tipo de dados específico. Por exemplo, a estrutura DateTime contém uma função que permite adicionar minutos. Se você estivesse usando uma string, não teria acesso ao método:
Você também pode querer converter um valor em outro tipo de dados se precisar seguir a estrutura de tipo de dados de um classe criada em C# ou um estrutura em C#.
Como converter e analisar diferentes tipos de dados
Você pode analisar diferentes tipos de dados, como inteiros, duplos, tipos booleanos e tipos de data e hora.
Strings para Inteiros
Para converter uma string em um número inteiro, use o método Parse():
string strInt = "45";
int int32 = Int32.Parse (strInt);
Console. WriteLine (int32); // saída: 45
Você também pode analisar a cadeia de caracteres em inteiros de diferentes tamanhos de bits, como Int16, Int32 ou Int64.
int int16 = Int16.Parse (strInt);
Console. WriteLine (int16); // saída: 45
Se você estiver usando o método Parse(), verifique se o valor da string representa um número inteiro. Se você tentar analisar um valor não inteiro, como "Olá", receberá um erro de análise no tempo de execução.
string invalidString = "Olá";
int invalidResult = Int32.Parse (invalidString);
Você também pode usar o método TryParse() para detectar quaisquer exceções que possam ocorrer durante a análise:
int tryParseResult = 0;
se (Int32.TryParse(Sequência inválida, foratryParseResult))
{
Console.WriteLine(tryParseResult);
}
outro
{
Console. WriteLine("algo deu errado");
}
Para converter um inteiro de volta para uma string, use o método ToString():
string intString = 45.ToString();
Console. WriteLine (intString); // saída: 45
Cordas para duplas
Analisar uma string para um duplo é muito semelhante a analisar um para um inteiro. Use o método Parse() da classe Double:
string strDouble = "90.5";
dobro d = Duplo. Analisar (strDouble);
Console. WriteLine (d); // saída: 90,5
Assim como com inteiros, você também pode usar o método TryParse() para detectar quaisquer erros de análise que possam ocorrer:
string invalidStringDouble = "Olá";
dobro tenteParseDouble = 0;
se (Dobro.TryParse(invalidStringDouble, foratryParseDouble))
{
Console.WriteLine(tryParseDouble);
}
Para converter um double back em um inteiro, use o método ToString():
dobro dDuplo = 90.5;
string dString = dDouble. Para sequenciar();
Console. WriteLine (dString); // saída: 90,5
Duplos para Inteiros
Você pode usar a conversão para converter um duplo em um inteiro. Como um número inteiro armazena apenas um número inteiro, a conversão removerá as casas decimais. Por exemplo, converter "12,34" armazenará apenas o valor "12".
dobro dValor = 12.34;
int iValor = (int)dValor;
Console. WriteLine (iValue); // saída: 12
Você também pode converter um inteiro de volta para um duplo:
dValor = (dobro)Eu valorizo;
Console. WriteLine (dValue); // saída: 12
Strings e valores booleanos
Para converter uma string em um booleano, use o método Parse() ou ToBoolean():
string stringBool = "Verdadeiro";
bool b = bool. Analisar (stringBool);// ou
b = Converter. ToBoolean (stringBool);
Console. WriteLine (b); // saída: verdadeiro
Para converter um booleano de volta para uma string, use o método ToString():
string strTrue = verdadeiro.Para sequenciar();
string stringFalse = falso.Para sequenciar();
Valores inteiros e booleanos
Para converter um número inteiro em booleano, use o método ToBoolean() para converter um "1" ou "0" em seu valor booleano equivalente. O valor "1" será convertido em "verdadeiro" enquanto "0" será convertido em "falso":
int falseBit = 0;
int trueBit = 1;
Console. WriteLine (Converter. ToBoolean (falseBit)); // saída: falso
Console. WriteLine (Converter. ToBoolean (trueBit)); // saída: verdadeiro
Você também pode passar um valor inteiro diferente de "1" ou "0" para o método ToBoolean(). Por padrão, o método ainda retornará "true":
int bit inválido = 8;
Console. WriteLine (Converter. ToBoolean (invalidBit)); // saída: verdadeiro
Para converter um booleano de volta para um número inteiro, use o método Convert. Método ToInt32(). A conversão de "true" retornará um "1" e a conversão de "false" retornará um "0".
bool iBool = verdadeiro;
int bInt = Converter. ToInt32(iBool);
Console. WriteLine (bInt); // saída: 1
Strings para DateTime
Para analisar uma string no formato datetime, use o método DateTime. Método Parse():
DateTime newDateTime = DateTime. Analisar("01/01/2018 00:00:00");
Console. WriteLine (novaDataHora); // output: 01/01/2018 00:00:00
Para converter um datetime de volta para uma string, use o método ToString():
DataHora dt = novo Data hora(2018, 1, 1);
string dtString = dt. Para sequenciar();
Console. WriteLine (dtString); // output: 01/01/2018 00:00:00
Analisando valores para diferentes tipos de dados
Agora você entende como converter valores de um tipo de dados para outro. Essas não são as únicas conversões existentes, portanto, sinta-se à vontade para aprender mais sobre outros tipos de dados em C#.
Você também pode explorar como outros tipos de dados funcionam em outras linguagens, como JavaScript.