MethodBody.InitLocals プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > MethodBody.InitLocals プロパティの意味・解説 

MethodBody.InitLocals プロパティ

メモ : このプロパティは、.NET Framework version 2.0新しく追加されたものです。

メソッド本体ローカル変数がその型の既定値初期化されるかどうかを示す値を取得します

名前空間: System.Reflection
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説
使用例使用例

MethodBodyExample という名前のテスト メソッド定義しローカル変数情報および例外処理句を表示するコード例次に示します。MethodBase.GetMethodBody メソッド使用してテスト メソッドの MethodBody オブジェクト取得します。MaxStackSize プロパティInitLocals プロパティ表示されます。

このコード例は、MethodBody クラストピック取り上げているコード例一部分です。

Imports System
Imports System.Reflection

Public Class Example

    Public Shared Sub Main()

        ' Demonstrate the effect of the Visual Basic When keyword, which
        ' generates a Filter clause in the Try block.
        Dim e As New Example()
        Console.WriteLine()
        e.MethodBodyExample("String argument")
        e.MethodBodyExample(Nothing)

        ' Get method body information.
        Dim mi As MethodInfo = _
            GetType(Example).GetMethod("MethodBodyExample")
        Dim mb As MethodBody = mi.GetMethodBody()
        Console.WriteLine(vbCrLf & "Method: {0}",
 mi)

        ' Display the general information included in the 
        ' MethodBody object.
        Console.WriteLine("    Local variables are initialized:
 {0}", _
            mb.InitLocals)
        Console.WriteLine("    Maximum number of items on the
 operand stack: {0}", _
            mb.MaxStackSize)
<br /><span space="preserve">...</span><br
 />    End Sub

    ' This test method is executed at the beginning of Main, to show
    ' how the Filter clause works. The Filter clause is generated by
 
    ' a Visual Basic When expression. If arg is Nothing, this method
    ' throws ArgumentNullException, which is caught by the filter
    ' clause. If arg is a string, the method throws ArgumentException
,
    ' which does not match the filter clause.
    '
    ' Sub Main also contains code to analyze this method, using 
    ' the properties and methods of the MethodBody class.
    Public Sub MethodBodyExample(ByVal
 arg As Object)

        ' Define some local variables. In addition to these variables
,
        ' the local variable list includes the variables scoped to 
        ' the catch clauses.
        Dim var1 As Integer
 = 42
        Dim var2 As String
 = "Forty-two"

        Try
            ' Depending on the input value, throw an ArgumentException
 or 
            ' an ArgumentNullException to test the Catch clauses.
            '
            If arg Is Nothing
 Then
                Throw New ArgumentNullException("The
 argument cannot be Nothing.")
            End If
            If arg.GetType() Is GetType(String)
 Then
                Throw New ArgumentException("The
 argument cannot be a string.")
            End If
        
        ' The When expression makes this a filter clause. The expression
 
        ' selects only exceptions that derive from the ArgumentException
        ' class. Other exceptions, including ArgumentException itself,
 
        ' are not handled by this filter clause.
        Catch ex As ArgumentException _
            When ex.GetType().IsSubclassOf(GetType(ArgumentException))

            Console.WriteLine("Filter clause caught: {0}",
 ex.GetType())
        
        ' This catch clause handles the ArgumentException class, and
        ' any other class derived from Exception.
        Catch ex As Exception
            Console.WriteLine("Ordinary exception-handling clause
 caught: {0}", _
                ex.GetType())

        Finally
            var1 = 3033
            var2 = "Another string."
        End Try
    End Sub
End Class

' This code example produces output similar to the following:
'
'Ordinary exception-handling clause caught: System.ArgumentException
'Filter clause caught: System.ArgumentNullException
'
'Method: Void MethodBodyExample(System.Object)
'    Local variables are initialized: True
'    Maximum number of items on the operand stack: 3
using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        // Get method body information.
        MethodInfo mi = typeof(Example).GetMethod("MethodBodyExample");
        MethodBody mb = mi.GetMethodBody();
        Console.WriteLine("\r\nMethod: {0}", mi);

        // Display the general information included in the 
        // MethodBody object.
        Console.WriteLine("    Local variables are initialized: {0}", 
            mb.InitLocals);
        Console.WriteLine("    Maximum number of items on the operand stack:
 {0}", 
            mb.MaxStackSize);
<br /><span space="preserve">...</span><br /> 
   }

    // The Main method contains code to analyze this method, using
    // the properties and methods of the MethodBody class.
    public void MethodBodyExample(object arg)
    {
        // Define some local variables. In addition to these variables
,
        // the local variable list includes the variables scoped to
 
        // the catch clauses.
        int var1 = 42;
        string var2 = "Forty-two";

        try
        {
            // Depending on the input value, throw an ArgumentException
 or 
            // an ArgumentNullException to test the Catch clauses.
            if (arg == null)
            {
                throw new ArgumentNullException("The argument
 cannot be null.");
            }
            if (arg.GetType() == typeof(string))
            {
                throw new ArgumentException("The argument
 cannot be a string.");
            }        
        }

        // There is no Filter clause in this code example. See the Visual
 
        // Basic code for an example of a Filter clause.

        // This catch clause handles the ArgumentException class, and
        // any other class derived from Exception.
        catch(Exception ex)
        {
            Console.WriteLine("Ordinary exception-handling clause caught: {0}",
 
                ex.GetType());
        }        
        finally
        {
            var1 = 3033;
            var2 = "Another string.";
        }
    }
}

// This code example produces output similar to the following:
//
//Method: Void MethodBodyExample(System.Object)
//    Local variables are initialized: True
//    Maximum number of items on the operand stack: 2
#using <System.dll>

using namespace System;
using namespace System::Reflection;

public ref class Example
{
    // The Main method contains code to analyze this method, using
    // the properties and methods of the MethodBody class.
public:
    void MethodBodyExample(Object^ arg)
    {
        // Define some local variables. In addition to these variables
,
        // the local variable list includes the variables scoped to
 
        // the catch clauses.
        int var1 = 42;
        String^ var2 = "Forty-two";

        try
        {
            // Depending on the input value, throw an ArgumentException
 or 
            // an ArgumentNullException to test the Catch clauses.
            if (arg == nullptr)
            {
                throw gcnew ArgumentNullException("The argument cannot "
 +
                    "be null.");
            }
            if (arg->GetType() == String::typeid)
            {
                throw gcnew ArgumentException("The argument cannot " +
 
                    "be a string.");
            }        
        }

        // There is no Filter clause in this code example. See the Visual
 
        // Basic code for an example of a Filter clause.

        // This catch clause handles the ArgumentException class, and
        // any other class derived from Exception.
        catch (ArgumentException^ ex)
        {
            Console::WriteLine("Ordinary exception-handling clause caught:"
 +
                " {0}", ex->GetType());
        }        
        finally
        {
            var1 = 3033;
            var2 = "Another string.";
        }
    }
};

int main()
{ 
    // Get method body information.
    MethodInfo^ mi = 
        Example::typeid->GetMethod("MethodBodyExample");

    MethodBody^ mb = mi->GetMethodBody();
    Console::WriteLine("\r\nMethod: {0}", mi);

    // Display the general information included in the 
    // MethodBody object.
    Console::WriteLine("    Local variables are initialized: {0}", 
        mb->InitLocals);
    Console::WriteLine("    Maximum number of items on the operand " +
        "stack: {0}", mb->MaxStackSize);
<br /><span space="preserve">...</span><br /> 
   // The Main method contains code to analyze this method, using
    // the properties and methods of the MethodBody class.
public:
    void MethodBodyExample(Object^ arg)
    {
        // Define some local variables. In addition to these variables
,
        // the local variable list includes the variables scoped to
 
        // the catch clauses.
        int var1 = 42;
        String^ var2 = "Forty-two";

        try
        {
            // Depending on the input value, throw an ArgumentException
 or 
            // an ArgumentNullException to test the Catch clauses.
            if (arg == nullptr)
            {
                throw gcnew ArgumentNullException("The argument cannot "
 +
                    "be null.");
            }
            if (arg->GetType() == String::typeid)
            {
                throw gcnew ArgumentException("The argument cannot " +
 
                    "be a string.");
            }        
        }

        // There is no Filter clause in this code example. See the Visual
 
        // Basic code for an example of a Filter clause.

        // This catch clause handles the ArgumentException class, and
        // any other class derived from Exception.
        catch (ArgumentException^ ex)
        {
            Console::WriteLine("Ordinary exception-handling clause caught:"
 +
                " {0}", ex->GetType());
        }        
        finally
        {
            var1 = 3033;
            var2 = "Another string.";
        }
    }
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

MethodBody.InitLocals プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MethodBody.InitLocals プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS