次の方法で共有


Convert.ToUInt16 メソッド (String, IFormatProvider)

指定したカルチャに固有の書式情報を使用して、指定した String 形式の数値を、それと等価な 16 ビット符号なし整数値に変換します。

このメソッドは、CLS と互換性がありません。CLS との互換性に関する詳細については 「共通言語仕様の概要」 を参照してください。

<CLSCompliant(False)>
Overloads Public Shared Function ToUInt16( _   ByVal value As String, _   ByVal provider As IFormatProvider _) As UInt16
[C#]
[CLSCompliant(false)]
public static ushort ToUInt16(stringvalue,IFormatProviderprovider);
[C++]
[CLSCompliant(false)]
public: static unsigned short ToUInt16(String* value,IFormatProvider* provider);
[JScript]
public
   CLSCompliant(false)
static function ToUInt16(value : String,provider : IFormatProvider) : UInt16;

パラメータ

  • value
    変換する数値を格納している String
  • provider
    カルチャに固有の書式情報を提供する IFormatProvider インターフェイス実装。

戻り値

value の値と等価な 16 ビット符号なし整数。

または

value が null 参照 (Visual Basic では Nothing) の場合は 0。

例外

例外の種類 条件
FormatException value の構成が、省略可能な符号と、それに続く 0 から 9 までの一連の数字ではありません。
OverflowException valueMinValue 未満の数値か、 MaxValue より大きい数値を表しています。

解説

戻り値は、value に対して UInt16.Parse を呼び出した結果得られる値です。

provider は、 NumberFormatInfo オブジェクトを取得する IFormatProvider インスタンスです。 NumberFormatInfo オブジェクトは、value の書式に関するカルチャに固有の情報を提供します。 provider が null 参照 (Visual Basic では Nothing) の場合は、現在のカルチャの NumberFormatInfo が使用されます。

使用例

[Visual Basic, C#, C++] IFormatProvider オブジェクトを使用し、 String 形式の UInt16 (16 ビット符号なし整数) を ToUInt16 メソッドで変換するコード例を次に示します。

 
' Example of the Convert.ToUInt16( String ) and 
' Convert.ToUInt16( String, IFormatProvider ) methods.
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

Module ToUInt16ProviderDemo

    Dim format As String = "{0,-20}{1,-20}{2}"

    ' Get the exception type name; remove the namespace prefix.
    Function GetExceptionType( ex As Exception ) As String

        Dim exceptionType   As String = ex.GetType( ).ToString( )
        Return exceptionType.Substring( _
            exceptionType.LastIndexOf( "."c ) + 1 )
    End Function

    Sub ConvertToUInt16( numericStr As String, _
        provider As IFormatProvider )

        Dim defaultValue    As Object
        Dim providerValue   As Object

        ' Convert numericStr to UInt16 without a format provider.
        Try
            defaultValue = Convert.ToUInt16( numericStr )
        Catch ex As Exception
            defaultValue = GetExceptionType( ex )
        End Try

        ' Convert numericStr to UInt16 with a format provider.
        Try
            providerValue = Convert.ToUInt16( numericStr, provider )
        Catch ex As Exception
            providerValue = GetExceptionType( ex )
        End Try

        Console.WriteLine( format, numericStr, _
            defaultValue, providerValue )
    End Sub

    Sub Main( )

        ' Create a NumberFormatInfo object and set several of its
        ' properties that apply to numbers.
        Dim provider  As NumberFormatInfo = new NumberFormatInfo( )

        ' These properties affect the conversion.
        provider.PositiveSign = "pos "
        provider.NegativeSign = "neg "

        ' These properties do not affect the conversion.
        ' The input string cannot have decimal and group separators.
        provider.NumberDecimalSeparator = "."
        provider.NumberGroupSeparator = ","
        provider.NumberGroupSizes = New Integer( ) { 3 }

        Console.WriteLine( "This example of" & vbCrLf & _
            "  Convert.ToUInt16( String ) and " & vbCrLf & _
            "  Convert.ToUInt16( String, IFormatProvider ) " & _
            vbCrLf & "generates the following output. It " & _
            "converts several strings to unsigned " & vbCrLf & _
            "Short values, using default " & _
            "formatting or a NumberFormatInfo object." & vbCrLf )
        Console.WriteLine( format, "String to convert", _
            "Default/exception", "Provider/exception" )
        Console.WriteLine( format, "-----------------", _
            "-----------------", "------------------" )

        ' Convert strings, with and without an IFormatProvider.
        ConvertToUInt16( "34567", provider )
        ConvertToUInt16( "+34567", provider )
        ConvertToUInt16( "pos 34567", provider )
        ConvertToUInt16( "34567.", provider )
        ConvertToUInt16( "34,567", provider )
        ConvertToUInt16( "65535", provider )
        ConvertToUInt16( "65536", provider )
        ConvertToUInt16( "-1", provider )
    End Sub 
End Module 

' This example of
'   Convert.ToUInt16( String ) and
'   Convert.ToUInt16( String, IFormatProvider )
' generates the following output. It converts several strings to unsigned
' Short values, using default formatting or a NumberFormatInfo object.
' 
' String to convert   Default/exception   Provider/exception
' -----------------   -----------------   ------------------
' 34567               34567               34567
' +34567              34567               FormatException
' pos 34567           FormatException     34567
' 34567.              FormatException     FormatException
' 34,567              FormatException     FormatException
' 65535               65535               65535
' 65536               OverflowException   OverflowException
' -1                  OverflowException   FormatException

[C#] 
// Example of the Convert.ToUInt16( string ) and 
// Convert.ToUInt16( string, IFormatProvider ) methods.
using System;
using System.Globalization;

class ToUInt16ProviderDemo
{
    static string format = "{0,-20}{1,-20}{2}";

     // Get the exception type name; remove the namespace prefix.
    static string GetExceptionType( Exception ex )
    {
        string exceptionType = ex.GetType( ).ToString( );
        return exceptionType.Substring( 
            exceptionType.LastIndexOf( '.' ) + 1 );
    }

    static void ConvertToUInt16( string numericStr, 
        IFormatProvider provider )
    {
        object defaultValue;
        object providerValue;

        // Convert numericStr to UInt16 without a format provider.
        try
        {
            defaultValue = Convert.ToUInt16( numericStr );
        }
        catch( Exception ex )
        {
            defaultValue = GetExceptionType( ex );
        }

        // Convert numericStr to UInt16 with a format provider.
        try
        {
            providerValue = Convert.ToUInt16( numericStr, provider );
        }
        catch( Exception ex )
        {
            providerValue = GetExceptionType( ex );
        }

        Console.WriteLine( format, numericStr, 
            defaultValue, providerValue );
    }

    public static void Main( )
    {
        // Create a NumberFormatInfo object and set several of its
        // properties that apply to numbers.
        NumberFormatInfo provider = new NumberFormatInfo();

        // These properties affect the conversion.
        provider.NegativeSign = "neg ";
        provider.PositiveSign = "pos ";

        // These properties do not affect the conversion.
        // The input string cannot have decimal and group separators.
        provider.NumberDecimalSeparator = ".";
        provider.NumberGroupSeparator = ",";
        provider.NumberGroupSizes = new int[ ] { 3 };

        Console.WriteLine("This example of\n" +
            "  Convert.ToUInt16( string ) and \n" +
            "  Convert.ToUInt16( string, IFormatProvider ) " +
            "\ngenerates the following output. It converts " +
            "several strings to \nushort values, using " +
            "default formatting or a NumberFormatInfo object.\n" );
        Console.WriteLine( format, "String to convert", 
            "Default/exception", "Provider/exception" );
        Console.WriteLine( format, "-----------------", 
            "-----------------", "------------------" );

        // Convert strings, with and without an IFormatProvider.
        ConvertToUInt16( "34567", provider );
        ConvertToUInt16( "+34567", provider );
        ConvertToUInt16( "pos 34567", provider );
        ConvertToUInt16( "34567.", provider );
        ConvertToUInt16( "34,567", provider );
        ConvertToUInt16( "65535", provider );
        ConvertToUInt16( "65536", provider );
        ConvertToUInt16( "-1", provider );
    }
}

/*
This example of
  Convert.ToUInt16( string ) and
  Convert.ToUInt16( string, IFormatProvider )
generates the following output. It converts several strings to
ushort values, using default formatting or a NumberFormatInfo object.

String to convert   Default/exception   Provider/exception
-----------------   -----------------   ------------------
34567               34567               34567
+34567              34567               FormatException
pos 34567           FormatException     34567
34567.              FormatException     FormatException
34,567              FormatException     FormatException
65535               65535               65535
65536               OverflowException   OverflowException
-1                  OverflowException   FormatException
*/ 

[C++] 
// Example of the Convert::ToUInt16( String* ) and 
// Convert::ToUInt16( String*, IFormatProvider* ) methods.
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;

const __wchar_t* protoFmt = L"{0,-20}{1,-20}{2}" ;

// Get the exception type name; remove the namespace prefix.
String* GetExceptionType( Exception* ex )
{
    String* exceptionType = ex->GetType( )->ToString( );
    return exceptionType->Substring( 
        exceptionType->LastIndexOf( '.' ) + 1 );
}

void ConvertToUInt16( String* numericStr, IFormatProvider* provider )
{
    Object* defaultValue;
    Object* providerValue;

    // Convert numericStr to UInt16 without a format provider.
    try
    {
        defaultValue = __box( Convert::ToUInt16( numericStr ) );
    }
    catch( Exception* ex )
    {
        defaultValue = GetExceptionType( ex );
    }

    // Convert numericStr to UInt16 with a format provider.
    try
    {
        providerValue = __box( Convert::ToUInt16( 
            numericStr, provider ) );
    }
    catch( Exception* ex )
    {
        providerValue = GetExceptionType( ex );
    }

    Console::WriteLine( new String( protoFmt ), numericStr, 
        defaultValue, providerValue );
}

void main( )
{
    // Create a NumberFormatInfo object and set several of its
    // properties that apply to numbers.
    NumberFormatInfo* provider = new NumberFormatInfo( );

    // These properties affect the conversion.
    provider->NegativeSign = S"neg ";
    provider->PositiveSign = S"pos ";

    // These properties do not affect the conversion.
    // The input string cannot have decimal and group separators.
    provider->NumberDecimalSeparator = S".";
    provider->NumberGroupSeparator = S",";
    Int32 sizes __gc [ ] = { 3 };
    provider->NumberGroupSizes = sizes;

    Console::WriteLine(S"This example of\n" 
        S"  Convert::ToUInt16( String* ) and \n" 
        S"  Convert::ToUInt16( String*, IFormatProvider* ) " 
        S"\ngenerates the following output. It converts " 
        S"several strings to unsigned \nshort values, using " 
        S"default formatting or a NumberFormatInfo object.\n" );
    Console::WriteLine( new String( protoFmt ), S"String to convert", 
        S"Default/exception", S"Provider/exception" );
    Console::WriteLine( new String( protoFmt ), S"-----------------", 
        S"-----------------", S"------------------" );

    // Convert strings, with and without an IFormatProvider.
    ConvertToUInt16( S"34567", provider );
    ConvertToUInt16( S"+34567", provider );
    ConvertToUInt16( S"pos 34567", provider );
    ConvertToUInt16( S"34567.", provider );
    ConvertToUInt16( S"34,567", provider );
    ConvertToUInt16( S"65535", provider );
    ConvertToUInt16( S"65536", provider );
    ConvertToUInt16( S"-1", provider );
}

/*
This example of
  Convert::ToUInt16( String* ) and
  Convert::ToUInt16( String*, IFormatProvider* )
generates the following output. It converts several strings to unsigned
short values, using default formatting or a NumberFormatInfo object.

String to convert   Default/exception   Provider/exception
-----------------   -----------------   ------------------
34567               34567               34567
+34567              34567               FormatException
pos 34567           FormatException     34567
34567.              FormatException     FormatException
34,567              FormatException     FormatException
65535               65535               65535
65536               OverflowException   OverflowException
-1                  OverflowException   FormatException
*/ 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Convert クラス | Convert メンバ | System 名前空間 | Convert.ToUInt16 オーバーロードの一覧