Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Propriedade Type.IsByRef

Obtém um valor indicando se o Type é passado por referência.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public bool IsByRef { get; }

Valor de propriedade

Tipo: System.Boolean
true Se a Type é passado por referência; caso contrário, false.

Implementações

_Type.IsByRef

Para obter o tipo real, o tipo que foi passado por referência cancelar a referência e, em seguida, chame GetElementType Nesse tipo.

O exemplo a seguir demonstra um uso do IsByRef propriedade para verificar se um tipo especificado é passado por referência. O exemplo define a classe MyTypeDelegator, que substitui o HasElementTypeImpl método. A classe principal verifica o HasElementType propriedade e exibe o elemento de tipo.

using System;
using System.Reflection;
publicclass MyTypeDelegator : TypeDelegator
{
    public string myElementType = null;
    private Type myType = null ; 
    public MyTypeDelegator(Type myType) : base(myType)
    {
        this.myType = myType;
    }
    // Override Type.HasElementTypeImpl().protectedoverridebool HasElementTypeImpl()
    {
        // Determine whether the type is an array.if(myType.IsArray)
        {
            myElementType = "array";
            returntrue;
        }
        // Determine whether the type is a reference.if(myType.IsByRef)
        {
            myElementType = "reference";
            returntrue;
        }
        // Determine whether the type is a pointer.if(myType.IsPointer)
        { 
            myElementType = "pointer";
            returntrue;
        }
        // Return false if the type is not a reference, array, or pointer type.returnfalse;
    }  
}
publicclass Type_HasElementTypeImpl
{
    publicstaticvoid Main()
    {
        try
        {
            int myInt = 0 ; 
            int[] myArray = newint[5];
            MyTypeDelegator myType = new MyTypeDelegator(myArray.GetType());
            // Determine whether myType is an array, pointer, reference type.  
            Console.WriteLine("\nDetermine whether a variable is an array, pointer, or reference type.\n");
            if( myType.HasElementType)
                Console.WriteLine("The type of myArray is {0}.", myType.myElementType);
            else
                Console.WriteLine("myArray is not an array, pointer, or reference type.");
            myType = new MyTypeDelegator(myInt.GetType());
            // Determine whether myType is an array, pointer, reference type. if( myType.HasElementType)
                Console.WriteLine("The type of myInt is {0}.", myType.myElementType);
            else
                Console.WriteLine("myInt is not an array, pointer, or reference type.");
        }
        catch( Exception e )
        {
            Console.WriteLine("Exception: {0}", e.Message);
        }
    }
}


import System.*;
import System.Reflection.*;

public class MyTypeDelegator extends TypeDelegator
{
    public String myElementType = null;
    private Type myType = null;

    public MyTypeDelegator(Type myType)
    {
        super(myType);
        this.myType = myType;
    } //MyTypeDelegator

    // Override Type.HasElementTypeImpl().
    protected boolean HasElementTypeImpl()
    {
        // Determine whether the type is an array.
        if (myType.get_IsArray()) {
            myElementType = "array";
            return true;
        }
        // Determine whether the type is a reference.
        if (myType.get_IsByRef()) {
            myElementType = "reference";
            return true;
        }
        // Determine whether the type is a pointer.
        if (myType.get_IsPointer()) {
            myElementType = "pointer";
            return true;
        }
        // Return false if the type is not a reference, array, or pointer type.
        return false;
    } //HasElementTypeImpl
} //MyTypeDelegator

public class Type_HasElementTypeImpl
{
    public static void main(String[] args)
    {
        try {
            int myInt = 0;
            int myArray[] = new int[5];
            MyTypeDelegator myType = new MyTypeDelegator(myArray.GetType());
            // Determine whether myType is an array, pointer, reference type.  
            Console.WriteLine("\nDetermine whether a variable is an array, pointer," 
                + " or reference type.\n");
            if (myType.get_HasElementType()) {
                Console.WriteLine("The type of myArray is {0}.", myType.
                    myElementType);
            }
            else {
                Console.WriteLine("myArray is not an array, pointer,"
                    + "or reference type.");
            }
            myType = new MyTypeDelegator(((System.Int32)myInt).GetType()); 
            // Determine whether myType is an array, pointer, reference type. 
            if (myType.get_HasElementType()) {
                Console.WriteLine("The type of myInt is {0}.", myType.
                    myElementType);
            }
            else {
                Console.WriteLine("myInt is not an array, pointer," 
                    + " or reference type.");
            }
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception: {0}", e.get_Message());
        }
    } //main
} //Type_HasElementTypeImpl


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatível com: 3.5, 2.0, 1.0

XNA Framework

Compatível com: , 1.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft