Прочитать на английском

Поделиться через


Convert.ToBoolean Метод

Определение

Преобразует заданное значение в эквивалентное логическое значение.

Перегрузки

ToBoolean(SByte)

Преобразует значение заданного 8-битового целого числа со знаком в эквивалентное логическое значение.

ToBoolean(String, IFormatProvider)

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

ToBoolean(Object, IFormatProvider)

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

ToBoolean(UInt64)

Преобразует значение заданного 64-битового целого числа без знака в эквивалентное логическое значение.

ToBoolean(UInt32)

Преобразует значение заданного 32-битового целого числа без знака в эквивалентное логическое значение.

ToBoolean(UInt16)

Преобразует значение заданного 16-битового целого числа без знака в эквивалентное логическое значение.

ToBoolean(String)

Преобразует заданное строковое представление логического значения в эквивалентное логическое значение.

ToBoolean(Single)

Преобразует значение заданного числа с плавающей запятой одиночной точности в эквивалентное логическое значение.

ToBoolean(Object)

Преобразует значение заданного объекта в эквивалентное логическое значение.

ToBoolean(DateTime)

При вызове этого метода всегда возникает исключение InvalidCastException.

ToBoolean(Int32)

Преобразует значение заданного 32-битового целого числа со знаком в эквивалентное логическое значение.

ToBoolean(Int16)

Преобразует значение заданного 16-битового целого числа со знаком в эквивалентное логическое значение.

ToBoolean(Double)

Преобразует значение заданного числа двойной точности с плавающей запятой в эквивалентное логическое значение.

ToBoolean(Decimal)

Преобразует значение заданного десятичного числа в эквивалентное логическое значение.

ToBoolean(Char)

При вызове этого метода всегда возникает исключение InvalidCastException.

ToBoolean(Byte)

Преобразует значение заданного 8-битового целого числа без знака в эквивалентное логическое значение.

ToBoolean(Boolean)

Возвращает заданное логическое значение; фактическое преобразование не производится.

ToBoolean(Int64)

Преобразует значение заданного 64-битового целого числа со знаком в эквивалентное логическое значение.

ToBoolean(SByte)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 8-битового целого числа со знаком в эквивалентное логическое значение.

C#
[System.CLSCompliant(false)]
public static bool ToBoolean (sbyte value);

Параметры

value
SByte

8-разрядное целое число со знаком для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Атрибуты

Примеры

В следующем примере массив значений SByte преобразуется в Boolean значения.

C#
sbyte[] numbers = { SByte.MinValue, -1, 0, 10, 100, SByte.MaxValue };
bool result;

foreach (sbyte number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-5}  -->  {1}", number, result);
}
// The example displays the following output:
//       -128   -->  True
//       -1     -->  True
//       0      -->  False
//       10     -->  True
//       100    -->  True
//       127    -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(String, IFormatProvider)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

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

C#
public static bool ToBoolean (string value, IFormatProvider provider);
C#
public static bool ToBoolean (string? value, IFormatProvider? provider);

Параметры

value
String

Строка, содержащая значение TrueString или FalseString.

provider
IFormatProvider

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

Возвращаемое значение

true, если параметр value имеет значение TrueString, или false, если параметр value имеет значение FalseString либо null.

Исключения

Параметр value не равен TrueString или FalseString.

Комментарии

Если вы предпочитаете не обрабатывать исключение в случае сбоя преобразования, вместо этого можно вызвать Boolean.TryParse метод . Он возвращает Boolean значение, указывающее, успешно ли выполнено преобразование.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Object, IFormatProvider)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

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

C#
public static bool ToBoolean (object value, IFormatProvider provider);
C#
public static bool ToBoolean (object? value, IFormatProvider? provider);

Параметры

value
Object

Объект, реализующий интерфейс IConvertible, или значение null.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.

Возвращаемое значение

true или false, отражающее значение, возвращаемое методом ToBoolean(IFormatProvider) при вызове для базового типа параметра value. Если значением параметра value является null, метод возвращает false.

Исключения

value является строкой, которая не равна TrueString или FalseString.

value не реализует интерфейс IConvertible.

-или-

Преобразование value в Boolean не поддерживается.

Примеры

В следующем примере определяется класс, реализующий IConvertible , и класс , реализующий IFormatProvider. Объекты класса , реализующего IConvertible , содержат массив значений Double . Объект каждого класса передается методу ToBoolean(Object, IFormatProvider) . Этот метод возвращает значение true , если любое из неудаленных значений массива не равно нулю. Объект IFormatProvider определяет, как удаляются элементы для этого вычисления.

C#
using System;
using System.Collections;

// Define the types of averaging available in the class
// implementing IConvertible.
public enum AverageType : short
{
    None = 0,
    GeometricMean = 1,
    ArithmeticMean = 2,
    Median = 3
};

// Pass an instance of this class to methods that require an
// IFormatProvider. The class instance determines the type of
// average to calculate.
public class AverageInfo : IFormatProvider
{
    protected AverageType AvgType;

    // Specify the type of averaging in the constructor.
    public AverageInfo( AverageType avgType )
    {
        this.AvgType = avgType;
    }

    // This method returns a reference to the containing object
    // if an object of AverageInfo type is requested.
    public object GetFormat( Type argType )
    {
        if ( argType == typeof( AverageInfo ) )
            return this;
        else
            return null;
    }

    // Use this property to set or get the type of averaging.
    public AverageType TypeOfAverage
    {
        get { return this.AvgType; }
        set { this.AvgType = value; }
    }
}

// This class encapsulates an array of double values and implements
// the IConvertible interface. Most of the IConvertible methods
// return an average of the array elements in one of three types:
// arithmetic mean, geometric mean, or median.
public class DataSet : IConvertible
{
    protected ArrayList     data;
    protected AverageInfo   defaultProvider;

    // Construct the object and add an initial list of values.
    // Create a default format provider.
    public DataSet( params double[ ] values )
    {
        data = new ArrayList( values );
        defaultProvider =
            new AverageInfo( AverageType.ArithmeticMean );
    }

    // Add additional values with this method.
    public int Add( double value )
    {
        data.Add( value );
        return data.Count;
    }

    // Get, set, and add values with this indexer property.
    public double this[ int index ]
    {
        get
        {
            if( index >= 0 && index < data.Count )
                return (double)data[ index ];
            else
                throw new InvalidOperationException(
                    "[DataSet.get] Index out of range." );
        }
        set
        {
            if( index >= 0 && index < data.Count )
                data[ index ] = value;

            else if( index == data.Count )
                data.Add( value );
            else
                throw new InvalidOperationException(
                    "[DataSet.set] Index out of range." );
        }
    }

    // This property returns the number of elements in the object.
    public int Count
    {
        get { return data.Count; }
    }

    // This method calculates the average of the object's elements.
    protected double Average( AverageType avgType )
    {
        double  SumProd;

        if( data.Count == 0 )
            return 0.0;

        switch( avgType )
        {
            case AverageType.GeometricMean:

                SumProd = 1.0;
                for( int Index = 0; Index < data.Count; Index++ )
                    SumProd *= (double)data[ Index ];

                // This calculation will not fail with negative
                // elements.
                return Math.Sign( SumProd ) * Math.Pow(
                    Math.Abs( SumProd ), 1.0 / data.Count );

            case AverageType.ArithmeticMean:

                SumProd = 0.0;
                for( int Index = 0; Index < data.Count; Index++ )
                    SumProd += (double)data[ Index ];

                return SumProd / data.Count;

            case AverageType.Median:

                if( data.Count % 2 == 0 )
                    return ( (double)data[ data.Count / 2 ] +
                        (double)data[ data.Count / 2 - 1 ] ) / 2.0;
                else
                    return (double)data[ data.Count / 2 ];

            default:
                return 0.0;
        }
    }

    // Get the AverageInfo object from the caller's format provider,
    // or use the local default.
    protected AverageInfo GetAverageInfo( IFormatProvider provider )
    {
        AverageInfo avgInfo = null;

        if( provider != null )
            avgInfo = (AverageInfo)provider.GetFormat(
                typeof( AverageInfo ) );

        if ( avgInfo == null )
            return defaultProvider;
        else
            return avgInfo;
    }

    // Calculate the average and limit the range.
    protected double CalcNLimitAverage( double min, double max,
        IFormatProvider provider )
    {
        // Get the format provider and calculate the average.
        AverageInfo avgInfo = GetAverageInfo( provider );
        double avg = Average( avgInfo.TypeOfAverage );

        // Limit the range, based on the minimum and maximum values
        // for the type.
        return avg > max ? max : avg < min ? min : avg;
    }

    // The following elements are required by IConvertible.

    // None of these conversion functions throw exceptions. When
    // the data is out of range for the type, the appropriate
    // MinValue or MaxValue is used.
    public TypeCode GetTypeCode( )
    {
        return TypeCode.Object;
    }

    public bool ToBoolean( IFormatProvider provider )
    {
        // ToBoolean is false if the dataset is empty.
        if( data.Count <= 0 )
        {
            return false;
        }

        // For median averaging, ToBoolean is true if any
        // non-discarded elements are nonzero.
        else if( AverageType.Median ==
            GetAverageInfo( provider ).TypeOfAverage )
        {
            if (data.Count % 2 == 0 )
                return ( (double)data[ data.Count / 2 ] != 0.0 ||
                    (double)data[ data.Count / 2 - 1 ] != 0.0 );
            else
                return (double)data[ data.Count / 2 ] != 0.0;
        }

        // For arithmetic or geometric mean averaging, ToBoolean is
        // true if any element of the dataset is nonzero.
        else
        {
            for( int Index = 0; Index < data.Count; Index++ )
                if( (double)data[ Index ] != 0.0 )
                    return true;
            return false;
        }
    }

    public byte ToByte( IFormatProvider provider )
    {
        return Convert.ToByte( CalcNLimitAverage(
            Byte.MinValue, Byte.MaxValue, provider ) );
    }

    public char ToChar( IFormatProvider provider )
    {
        return Convert.ToChar( Convert.ToUInt16( CalcNLimitAverage(
            Char.MinValue, Char.MaxValue, provider ) ) );
    }

    // Convert to DateTime by adding the calculated average as
    // seconds to the current date and time. A valid DateTime is
    // always returned.
    public DateTime ToDateTime( IFormatProvider provider )
    {
        double seconds =
            Average( GetAverageInfo( provider ).TypeOfAverage );
        try
        {
            return DateTime.Now.AddSeconds( seconds );
        }
        catch( ArgumentOutOfRangeException )
        {
            return seconds < 0.0 ? DateTime.MinValue : DateTime.MaxValue;
        }
    }

    public decimal ToDecimal( IFormatProvider provider )
    {
        // The Double conversion rounds Decimal.MinValue and
        // Decimal.MaxValue to invalid Decimal values, so the
        // following limits must be used.
        return Convert.ToDecimal( CalcNLimitAverage(
            -79228162514264330000000000000.0,
            79228162514264330000000000000.0, provider ) );
    }

    public double ToDouble( IFormatProvider provider )
    {
        return Average( GetAverageInfo(provider).TypeOfAverage );
    }

    public short ToInt16( IFormatProvider provider )
    {
        return Convert.ToInt16( CalcNLimitAverage(
            Int16.MinValue, Int16.MaxValue, provider ) );
    }

    public int ToInt32( IFormatProvider provider )
    {
        return Convert.ToInt32( CalcNLimitAverage(
            Int32.MinValue, Int32.MaxValue, provider ) );
    }

    public long ToInt64( IFormatProvider provider )
    {
        // The Double conversion rounds Int64.MinValue and
        // Int64.MaxValue to invalid Int64 values, so the following
        // limits must be used.
        return Convert.ToInt64( CalcNLimitAverage(
            -9223372036854775000, 9223372036854775000, provider ) );
    }

    public SByte ToSByte( IFormatProvider provider )
    {
        return Convert.ToSByte( CalcNLimitAverage(
            SByte.MinValue, SByte.MaxValue, provider ) );
    }

    public float ToSingle( IFormatProvider provider )
    {
        return Convert.ToSingle( CalcNLimitAverage(
            Single.MinValue, Single.MaxValue, provider ) );
    }

    public UInt16 ToUInt16( IFormatProvider provider )
    {
        return Convert.ToUInt16( CalcNLimitAverage(
            UInt16.MinValue, UInt16.MaxValue, provider ) );
    }

    public UInt32 ToUInt32( IFormatProvider provider )
    {
        return Convert.ToUInt32( CalcNLimitAverage(
            UInt32.MinValue, UInt32.MaxValue, provider ) );
    }

    public UInt64 ToUInt64( IFormatProvider provider )
    {
        // The Double conversion rounds UInt64.MaxValue to an invalid
        // UInt64 value, so the following limit must be used.
        return Convert.ToUInt64( CalcNLimitAverage(
            0, 18446744073709550000.0, provider ) );
    }

    public object ToType( Type conversionType,
        IFormatProvider provider )
    {
        return Convert.ChangeType( Average(
            GetAverageInfo( provider ).TypeOfAverage ),
            conversionType );
    }

    public string ToString( IFormatProvider provider )
    {
        AverageType avgType = GetAverageInfo( provider ).TypeOfAverage;
        return String.Format( "( {0}: {1:G10} )", avgType,
            Average( avgType ) );
    }
}

class IConvertibleProviderDemo
{
    // Display a DataSet with three different format providers.
    public static void DisplayDataSet( DataSet ds )
    {
        string      fmt    = "{0,-12}{1,20}{2,20}{3,20}";
        AverageInfo median = new AverageInfo( AverageType.Median );
        AverageInfo geMean =
            new AverageInfo( AverageType.GeometricMean );

         // Display the dataset elements.
        if( ds.Count > 0 )
        {
            Console.Write( "\nDataSet: [{0}", ds[ 0 ] );
            for( int iX = 1; iX < ds.Count; iX++ )
                Console.Write( ", {0}", ds[ iX ] );
            Console.WriteLine( "]\n" );
        }

        Console.WriteLine( fmt, "Convert.", "Default",
            "Geometric Mean", "Median");
        Console.WriteLine( fmt, "--------", "-------",
            "--------------", "------");
        Console.WriteLine( fmt, "ToBoolean",
            Convert.ToBoolean( ds, null ),
            Convert.ToBoolean( ds, geMean ),
            Convert.ToBoolean( ds, median ) );
        Console.WriteLine( fmt, "ToByte",
            Convert.ToByte( ds, null ),
            Convert.ToByte( ds, geMean ),
            Convert.ToByte( ds, median ) );
        Console.WriteLine( fmt, "ToChar",
            Convert.ToChar( ds, null ),
            Convert.ToChar( ds, geMean ),
            Convert.ToChar( ds, median ) );
        Console.WriteLine( "{0,-12}{1,20:yyyy-MM-dd HH:mm:ss}" +
            "{2,20:yyyy-MM-dd HH:mm:ss}{3,20:yyyy-MM-dd HH:mm:ss}",
            "ToDateTime", Convert.ToDateTime( ds, null ),
            Convert.ToDateTime( ds, geMean ),
            Convert.ToDateTime( ds, median ) );
        Console.WriteLine( fmt, "ToDecimal",
            Convert.ToDecimal( ds, null ),
            Convert.ToDecimal( ds, geMean ),
            Convert.ToDecimal( ds, median ) );
        Console.WriteLine( fmt, "ToDouble",
            Convert.ToDouble( ds, null ),
            Convert.ToDouble( ds, geMean ),
            Convert.ToDouble( ds, median ) );
        Console.WriteLine( fmt, "ToInt16",
            Convert.ToInt16( ds, null ),
            Convert.ToInt16( ds, geMean ),
            Convert.ToInt16( ds, median ) );
        Console.WriteLine( fmt, "ToInt32",
            Convert.ToInt32( ds, null ),
            Convert.ToInt32( ds, geMean ),
            Convert.ToInt32( ds, median ) );
        Console.WriteLine( fmt, "ToInt64",
            Convert.ToInt64( ds, null ),
            Convert.ToInt64( ds, geMean ),
            Convert.ToInt64( ds, median ) );
        Console.WriteLine( fmt, "ToSByte",
            Convert.ToSByte( ds, null ),
            Convert.ToSByte( ds, geMean ),
            Convert.ToSByte( ds, median ) );
        Console.WriteLine( fmt, "ToSingle",
            Convert.ToSingle( ds, null ),
            Convert.ToSingle( ds, geMean ),
            Convert.ToSingle( ds, median ) );
        Console.WriteLine( fmt, "ToUInt16",
            Convert.ToUInt16( ds, null ),
            Convert.ToUInt16( ds, geMean ),
            Convert.ToUInt16( ds, median ) );
        Console.WriteLine( fmt, "ToUInt32",
            Convert.ToUInt32( ds, null ),
            Convert.ToUInt32( ds, geMean ),
            Convert.ToUInt32( ds, median ) );
        Console.WriteLine( fmt, "ToUInt64",
            Convert.ToUInt64( ds, null ),
            Convert.ToUInt64( ds, geMean ),
            Convert.ToUInt64( ds, median ) );
    }

    public static void Main( )
    {
        Console.WriteLine( "This example of " +
            "the Convert.To<Type>( object, IFormatProvider ) methods " +
            "\ngenerates the following output. The example " +
            "displays the values \nreturned by the methods, " +
            "using several IFormatProvider objects.\n" );

        DataSet ds1 = new DataSet(
            10.5, 22.2, 45.9, 88.7, 156.05, 297.6 );
        DisplayDataSet( ds1 );

        DataSet ds2 = new DataSet(
            359999.95, 425000, 499999.5, 775000, 1695000 );
        DisplayDataSet( ds2 );
    }
}

/*
This example of the Convert.To<Type>( object, IFormatProvider ) methods
generates the following output. The example displays the values
returned by the methods, using several IFormatProvider objects.

DataSet: [10.5, 22.2, 45.9, 88.7, 156.05, 297.6]

Convert.                 Default      Geometric Mean              Median
--------                 -------      --------------              ------
ToBoolean                   True                True                True
ToByte                       103                  59                  67
ToChar                         g                   ;                   C
ToDateTime   2003-05-13 15:04:12 2003-05-13 15:03:28 2003-05-13 15:03:35
ToDecimal       103.491666666667    59.4332135445164                67.3
ToDouble        103.491666666667    59.4332135445164                67.3
ToInt16                      103                  59                  67
ToInt32                      103                  59                  67
ToInt64                      103                  59                  67
ToSByte                      103                  59                  67
ToSingle                103.4917            59.43321                67.3
ToUInt16                     103                  59                  67
ToUInt32                     103                  59                  67
ToUInt64                     103                  59                  67

DataSet: [359999.95, 425000, 499999.5, 775000, 1695000]

Convert.                 Default      Geometric Mean              Median
--------                 -------      --------------              ------
ToBoolean                   True                True                True
ToByte                       255                 255                 255
ToChar                         ?                   ?                   ?
ToDateTime   2003-05-22 07:39:08 2003-05-20 22:28:45 2003-05-19 09:55:48
ToDecimal              750999.89    631577.237188435            499999.5
ToDouble               750999.89    631577.237188435            499999.5
ToInt16                    32767               32767               32767
ToInt32                   751000              631577              500000
ToInt64                   751000              631577              500000
ToSByte                      127                 127                 127
ToSingle                750999.9            631577.3            499999.5
ToUInt16                   65535               65535               65535
ToUInt32                  751000              631577              500000
ToUInt64                  751000              631577              500000
*/

Комментарии

provider позволяет пользователю указать сведения о преобразовании для конкретного языка и региональных параметров для содержимого value. Базовые типы игнорируют provider параметр. Однако параметр может использоваться, если value является определяемым пользователем типом, реализующим IConvertible интерфейс .

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(UInt64)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 64-битового целого числа без знака в эквивалентное логическое значение.

C#
[System.CLSCompliant(false)]
public static bool ToBoolean (ulong value);

Параметры

value
UInt64

64-разрядное целое число без знака для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Атрибуты

Примеры

В следующем примере массив значений UInt64 преобразуется в Boolean значения.

C#
ulong[] numbers = { UInt64.MinValue, 6121, 403890774, UInt64.MaxValue };
bool result;

foreach (ulong number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-26:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       0                           -->  False
//       6,121                       -->  True
//       403,890,774                 -->  True
//       18,446,744,073,709,551,615  -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(UInt32)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 32-битового целого числа без знака в эквивалентное логическое значение.

C#
[System.CLSCompliant(false)]
public static bool ToBoolean (uint value);

Параметры

value
UInt32

32-разрядное целое число без знака для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Атрибуты

Примеры

В следующем примере массив значений Int32 преобразуется в Boolean значения.

C#
uint[] numbers = { UInt32.MinValue, 612, 4038907, Int32.MaxValue };
bool result;

foreach (uint number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-15:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       0                -->  False
//       612              -->  True
//       4,038,907        -->  True
//       2,147,483,647    -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(UInt16)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Важно!

Этот API несовместим с CLS.

Преобразует значение заданного 16-битового целого числа без знака в эквивалентное логическое значение.

C#
[System.CLSCompliant(false)]
public static bool ToBoolean (ushort value);

Параметры

value
UInt16

16-разрядное целое число без знака для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Атрибуты

Примеры

В следующем примере массив значений UInt16 преобразуется в Boolean значения.

C#
ushort[] numbers = { UInt16.MinValue, 216, 21453, UInt16.MaxValue };
bool result;

foreach (ushort number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-7:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       0        -->  False
//       216      -->  True
//       21,453   -->  True
//       65,535   -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(String)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует заданное строковое представление логического значения в эквивалентное логическое значение.

C#
public static bool ToBoolean (string value);
C#
public static bool ToBoolean (string? value);

Параметры

value
String

Строка, содержащая значение TrueString или FalseString.

Возвращаемое значение

true, если параметр value имеет значение TrueString, или false, если параметр value имеет значение FalseString либо null.

Исключения

Параметр value не равен TrueString или FalseString.

Примеры

В следующем примере метод используется Convert.ToBoolean(String) для преобразования различных строк в логические значения.

C#
using System;

public class BooleanConversion
{
   public static void Main()
   {
      String[] values = { null, String.Empty, "true", "TrueString",
                          "False", "    false    ", "-1", "0" };
      foreach (var value in values) {
         try
         {
            Console.WriteLine("Converted '{0}' to {1}.", value,
                              Convert.ToBoolean(value));
         }
         catch (FormatException)
         {
            Console.WriteLine("Unable to convert '{0}' to a Boolean.", value);
         }
      }
   }
}
// The example displays the following output:
//       Converted '' to False.
//       Unable to convert '' to a Boolean.
//       Converted 'true' to True.
//       Unable to convert 'TrueString' to a Boolean.
//       Converted 'False' to False.
//       Converted '    false    ' to False.
//       Unable to convert '-1' to a Boolean.
//       Unable to convert '0' to a Boolean.

Комментарии

Для успешного преобразования value параметр должен быть равен Boolean.TrueString, константа со значением True, Boolean.FalseStringконстанта со значением , значение которой равно False, или значение null. При сравнении value с Boolean.TrueString и Boolean.FalseStringметод игнорирует регистр, а также начальные и конечные пробелы.

Если вы предпочитаете не обрабатывать исключение в случае сбоя преобразования, вместо этого можно вызвать Boolean.TryParse метод . Он возвращает Boolean значение, указывающее, успешно ли выполнено преобразование.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Single)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного числа с плавающей запятой одиночной точности в эквивалентное логическое значение.

C#
public static bool ToBoolean (float value);

Параметры

value
Single

Число с плавающей запятой одиночной точности, которое нужно преобразовать.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Single преобразуется в Boolean значения.

C#
float[] numbers = { Single.MinValue, -193.0012f, 20e-15f, 0f,
                    10551e-10f, 100.3398f, Single.MaxValue };
bool result;

foreach (float number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-15}  -->  {1}", number, result);
}
// The example displays the following output:
//       -3.402823E+38    -->  True
//       -193.0012        -->  True
//       2E-14            -->  True
//       0                -->  False
//       1.0551E-06       -->  True
//       100.3398         -->  True
//       3.402823E+38     -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Object)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного объекта в эквивалентное логическое значение.

C#
public static bool ToBoolean (object value);
C#
public static bool ToBoolean (object? value);

Параметры

value
Object

Объект, реализующий интерфейс IConvertible, или значение null.

Возвращаемое значение

true или false, отражающее значение, возвращаемое методом ToBoolean(IFormatProvider) при вызове для базового типа параметра value. Если значением параметра value является null, метод возвращает false.

Исключения

value является строкой, которая не равна TrueString или FalseString.

value не реализует интерфейс IConvertible.

-или-

Преобразование value в Boolean не поддерживается.

Примеры

В следующем примере массив значений объектов преобразуется в Boolean значения.

C#
object[] objects = { 16.33, -24, 0, "12", "12.7", String.Empty,
                     "1String", "True", "false", null,
                     new System.Collections.ArrayList() };

foreach (object obj in objects)
{
   Console.Write("{0,-40}  -->  ",
                 obj != null ?
                 String.Format("{0} ({1})", obj, obj.GetType().Name) :
                 "null");
   try {
      Console.WriteLine("{0}", Convert.ToBoolean(obj));
   }
   catch (FormatException) {
      Console.WriteLine("Bad Format");
   }
   catch (InvalidCastException) {
      Console.WriteLine("No Conversion");
   }
}
// The example displays the following output:
//       16.33 (Double)                            -->  True
//       -24 (Int32)                               -->  True
//       0 (Int32)                                 -->  False
//       12 (String)                               -->  Bad Format
//       12.7 (String)                             -->  Bad Format
//        (String)                                 -->  Bad Format
//       1String (String)                          -->  Bad Format
//       True (String)                             -->  True
//       false (String)                            -->  False
//       null                                      -->  False
//       System.Collections.ArrayList (ArrayList)  -->  No Conversion

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(DateTime)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

При вызове этого метода всегда возникает исключение InvalidCastException.

C#
public static bool ToBoolean (DateTime value);

Параметры

value
DateTime

Значение даты и времени для преобразования.

Возвращаемое значение

Это преобразование не поддерживается. Возвращаемое значение отсутствует.

Исключения

Это преобразование не поддерживается.

Примеры

В следующем примере показано, что попытка преобразовать DateTime значение в логический тип вызывает исключение InvalidCastException.

C#
public void ConvertBoolean() {
    const int year			= 1979;
    const int month			= 7;
    const int day			= 28;
    const int hour			= 13;
    const int minute		= 26;
    const int second		= 15;
    const int millisecond	= 53;

    DateTime dateTime = new DateTime(year, month, day, hour,
                                minute, second, millisecond);
    
    bool boolVal;

    // System.InvalidCastException is always thrown.
    try {
        boolVal = System.Convert.ToBoolean(dateTime);
    }
    catch (System.InvalidCastException) {
        System.Console.WriteLine("Conversion from DateTime to " +
            "Boolean is not supported by the .NET Framework.");
    }
}

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToBoolean(Int32)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного 32-битового целого числа со знаком в эквивалентное логическое значение.

C#
public static bool ToBoolean (int value);

Параметры

value
Int32

32-разрядное целое число со знаком для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Int32 преобразуется в Boolean значения.

C#
int[] numbers = { Int32.MinValue, -201649, -68, 0, 612, 4038907,
                  Int32.MaxValue };
bool result;

foreach (int number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-15:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       -2,147,483,648   -->  True
//       -201,649         -->  True
//       -68              -->  True
//       0                -->  False
//       612              -->  True
//       4,038,907        -->  True
//       2,147,483,647    -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Int16)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного 16-битового целого числа со знаком в эквивалентное логическое значение.

C#
public static bool ToBoolean (short value);

Параметры

value
Int16

16-разрядное целое число со знаком для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Int16 преобразуется в Boolean значения.

C#
short[] numbers = { Int16.MinValue, -10000, -154, 0, 216, 21453,
                    Int16.MaxValue };
bool result;

foreach (short number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-7:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       -32,768  -->  True
//       -10,000  -->  True
//       -154     -->  True
//       0        -->  False
//       216      -->  True
//       21,453   -->  True
//       32,767   -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Double)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного числа двойной точности с плавающей запятой в эквивалентное логическое значение.

C#
public static bool ToBoolean (double value);

Параметры

value
Double

Число с плавающей запятой двойной точности, которое нужно преобразовать.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере логическое значение преобразуется в и Double в Double логическое значение.

C#
public void ConvertDoubleBool(double doubleVal) {
    bool	boolVal;
    // Double to bool conversion cannot overflow.
    boolVal = System.Convert.ToBoolean(doubleVal);
    System.Console.WriteLine("{0} as a Boolean is: {1}.",
        doubleVal, boolVal);

    // bool to double conversion cannot overflow.
    doubleVal = System.Convert.ToDouble(boolVal);
    System.Console.WriteLine("{0} as a double is: {1}.",
        boolVal, doubleVal);
}

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Decimal)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного десятичного числа в эквивалентное логическое значение.

C#
public static bool ToBoolean (decimal value);

Параметры

value
Decimal

Преобразуемое число.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Decimal преобразуется в Boolean значения.

C#
decimal[] numbers = { Decimal.MinValue, -12034.87m, -100m, 0m,
                             300m, 6790823.45m, Decimal.MaxValue };
bool result;

foreach (decimal number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-30}  -->  {1}", number, result);
}
// The example displays the following output:
//       -79228162514264337593543950335  -->  True
//       -12034.87                       -->  True
//       -100                            -->  True
//       0                               -->  False
//       300                             -->  True
//       6790823.45                      -->  True
//       79228162514264337593543950335   -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Char)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

При вызове этого метода всегда возникает исключение InvalidCastException.

C#
public static bool ToBoolean (char value);

Параметры

value
Char

Знак Юникода, который необходимо преобразовать.

Возвращаемое значение

Это преобразование не поддерживается. Возвращаемое значение отсутствует.

Исключения

Это преобразование не поддерживается.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

ToBoolean(Byte)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного 8-битового целого числа без знака в эквивалентное логическое значение.

C#
public static bool ToBoolean (byte value);

Параметры

value
Byte

8-разрядное целое число без знака для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Byte преобразуется в Boolean значения.

C#
byte[] bytes = { Byte.MinValue, 100, 200, Byte.MaxValue };
bool result;

foreach (byte byteValue in bytes)
{
   result = Convert.ToBoolean(byteValue);
   Console.WriteLine("{0,-5}  -->  {1}", byteValue, result);
}
// The example displays the following output:
//       0      -->  False
//       100    -->  True
//       200    -->  True
//       255    -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Boolean)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Возвращает заданное логическое значение; фактическое преобразование не производится.

C#
public static bool ToBoolean (bool value);

Параметры

value
Boolean

Возвращаемое логическое значение.

Возвращаемое значение

value возвращается без изменений.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToBoolean(Int64)

Исходный код:
Convert.cs
Исходный код:
Convert.cs
Исходный код:
Convert.cs

Преобразует значение заданного 64-битового целого числа со знаком в эквивалентное логическое значение.

C#
public static bool ToBoolean (long value);

Параметры

value
Int64

64-разрядное целое число со знаком для преобразования.

Возвращаемое значение

true, если значение параметра value не равно нулю; в противном случае — false.

Примеры

В следующем примере массив значений Int64 преобразуется в Boolean значения.

C#
long[] numbers = { Int64.MinValue, -2016493, -689, 0, 6121,
                   403890774, Int64.MaxValue };
bool result;

foreach (long number in numbers)
{
   result = Convert.ToBoolean(number);
   Console.WriteLine("{0,-26:N0}  -->  {1}", number, result);
}
// The example displays the following output:
//       -9,223,372,036,854,775,808  -->  True
//       -2,016,493                  -->  True
//       -689                        -->  True
//       0                           -->  False
//       6,121                       -->  True
//       403,890,774                 -->  True
//       9,223,372,036,854,775,807   -->  True

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0