Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Освоение преобразования типов в C#: неявное, явное, Parse и Convert

Преобразование типов в C#: полное руководство

Научитесь конвертировать между типами данных в C# — от неявных и явных приведений к мощным методам Parse и Convert — с наглядными примерами и рекомендациями.

Преобразование типов — изменение значения из одного типа данных в другой — является базовым навыком в C#. Понимание того, когда и как использовать каждый метод, гарантирует, что ваш код будет безопасным и эффективным.

В C# преобразования делятся на две широкие категории:

  1. Неявные преобразования типов
  2. Явные преобразования типов (приведение)

1. Неявное преобразование типов в C#

Неявные преобразования выполняются компилятором автоматически, когда не может произойти потеря данных. Они безопасны и не требуют специального синтаксиса.

Типичные сценарии — преобразование меньшего числового типа в больший, например, int в double, чтобы значение можно было представить без усечения.

Пример: неявное преобразование типов

using System;
namespace MyApplication {
    class Program {
        static void Main(string[] args) {
            int numInt = 500;
            // Неявное преобразование
            double numDouble = numInt;
            Console.WriteLine($"Значение numInt: {numInt}");
            Console.WriteLine($"Тип numInt: {numInt.GetType()}");
            Console.WriteLine($"Значение numDouble: {numDouble}");
            Console.WriteLine($"Тип numDouble: {numDouble.GetType()}");
            Console.ReadLine();
        }
    }
}

Результат

Значение numInt: 500
Тип numInt: System.Int32
Значение numDouble: 500
Тип numDouble: System.Double

Поскольку double имеет большую емкость, компилятор безопасно повышает значение int без риска переполнения.

Примечание: неявные преобразования никогда не теряют данные, но увеличивают размер результирующего типа.


2. Явное преобразование типов (приведение) в C#

Явные преобразования, или приведения, используются при конвертации из большего типа в меньший или между несовместимыми типами. Разработчик должен явно выразить намерение, а компилятор может выдать предупреждение, если преобразование может отбросить данные.

Пример: явное преобразование типов

using System;
namespace MyApplication {
    class Program {
        static void Main(string[] args) {
            double numDouble = 1.23;
            int numInt = (int)numDouble; // Явное приведение
            Console.WriteLine($"Исходное double: {numDouble}");
            Console.WriteLine($"Преобразованное int: {numInt}");
            Console.ReadLine();
        }
    }
}

Результат

Исходное double: 1.23
Преобразованное int: 1

Приведение отбрасывает дробную часть, поэтому 1.23 становится 1. Если точность важна, перед приведением рассмотрите использование методов округления.

Примечание: приведение также называется type casting.


3. Преобразование строк с Parse()

При конвертации из string в числовой тип методы int.Parse, double.Parse и др. предоставляют прямой и типобезопасный подход.

Пример: использование int.Parse

using System;
namespace Conversion {
    class Program {
        static void Main(string[] args) {
            string n = "100";
            int a = int.Parse(n);
            Console.WriteLine($"Исходная строка: {n}");
            Console.WriteLine($"Преобразованное int: {a}");
            Console.ReadLine();
        }
    }
}

Результат

Исходная строка: 100
Преобразованное int: 100

Попытка разобрать нечисловую строку, такую как "test", вызовет FormatException. В продакшн-коде оберните вызов в try-catch или используйте int.TryParse для грамотной обработки ошибок.


4. Класс Convert

Статический класс Convert предлагает широкий набор методов для преобразования между множеством типов данных, часто выполняя необходимые проверки внутри.

МетодОписание
ToBoolean()Преобразует значение в bool
ToChar()Преобразует значение в char
ToDouble()Преобразует значение в double
ToInt16()Преобразует значение в 16-битное int
ToString()Преобразует значение в string

Ниже приведены иллюстративные примеры распространенных преобразований.

Пример: int → string и double

using System;
namespace Conversion {
    class Program {
        static void Main(string[] args) {
            int num = 100;
            Console.WriteLine($"int значение: {num}");
            string str = Convert.ToString(num);
            Console.WriteLine($"string значение: {str}");
            double dbl = Convert.ToDouble(num);
            Console.WriteLine($"Double значение: {dbl}");
            Console.ReadLine();
        }
    }
}

Результат

int значение: 100
string значение: 100
Double значение: 100

Пример: string ↔ double

using System;
namespace Conversion {
    class Program {
        static void Main(string[] args) {
            string str = "99.99";
            Console.WriteLine($"Исходная строка: {str}");
            double dbl = Convert.ToDouble(str);
            Console.WriteLine($"Преобразованное Double: {dbl}");
            double num = 88.9;
            Console.WriteLine($"Исходное double: {num}");
            string newStr = Convert.ToString(num);
            Console.WriteLine($"Преобразованная строка: {newStr}");
            Console.ReadLine();
        }
    }
}

Результат

Исходная строка: 99.99
Преобразованное Double: 99.99
Исходное double: 88.9
Преобразованная строка: 88.9

Пример: int → bool

using System;
namespace Conversion {
    class Program {
        static void Main(string[] args) {
            int num1 = 0;
            int num2 = 1;
            bool bool1 = Convert.ToBoolean(num1);
            bool bool2 = Convert.ToBoolean(num2);
            Console.WriteLine($"Булево значение 0: {bool1}");
            Console.WriteLine($"Булево значение 1: {bool2}");
            Console.ReadLine();
        }
    }
}

Результат

Булево значение 0: False
Булево значение 1: True

Примечание: в C# 0 интерпретируется как false; любое ненулевое целое число оценивается как true.


Освоив эти техники преобразования, вы сможете писать код, который одновременно типобезопасен и выразителен, снижая ошибки выполнения и улучшая читаемость.

Язык C

  1. Мастерство преобразования типов в Python: Полное руководство
  2. Числа, преобразование типов и математика в Python: полное руководство
  3. Освоение приведения типов в Java: от расширения к сужению и далее
  4. Дженерики в Java: упрощение сортировки и повышение типобезопасности
  5. Спецификации низкоуглеродистой стали ASTM A1018 Grade CS Type B
  6. Спецификации стали ASTM A424 Grade Type II
  7. Спецификации стали ASTM A424 Grade Type I
  8. Сталь ASTM A792 Grade CS Type A — Свойства и спецификации
  9. Труба ASTM A53 Grade A Type E: спецификации и ключевые свойства
  10. Труба ASTM A53 Grade A Type S: бесшовная, спецификации и свойства