Freigeben über


PropertyInfo.CanRead-Eigenschaft

Ruft einen Wert ab, der angibt, ob die Eigenschaft gelesen werden kann.

Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public MustOverride ReadOnly Property CanRead As Boolean
'Usage
Dim instance As PropertyInfo
Dim value As Boolean

value = instance.CanRead
public abstract bool CanRead { get; }
public:
virtual property bool CanRead {
    bool get () abstract;
}
/** @property */
public abstract boolean get_CanRead ()
public abstract function get CanRead () : boolean

Eigenschaftenwert

true, wenn dieses Objekt gelesen werden kann, andernfalls false.

Hinweise

Wenn die Eigenschaft über keinen get-Accessor verfügt, kann sie nicht gelesen werden.

Um die CanRead-Eigenschaft abzurufen, rufen Sie zunächst den Type der Klasse ab. Über Type rufen Sie PropertyInfo ab. Aus PropertyInfo rufen Sie den CanRead-Wert ab.

Beispiel

Im folgenden Beispiel werden zwei Eigenschaften definiert. Die erste Eigenschaft ist lesbar, daher ist die CanRead-Eigenschaft true. Die zweite Eigenschaft ist nicht lesbar (es ist kein get-Accessor vorhanden), und die CanRead-Eigenschaft ist daher false.

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

' Define one readable property and one not readable.
Public Class Mypropertya
    Private myCaption As String = "A Default caption"

    Public Property Caption() As String
        Get
            Return myCaption
        End Get
        Set(ByVal Value As String)
            If myCaption <> value Then
                myCaption = value
            End If
        End Set
    End Property
End Class

Public Class Mypropertyb
    Private myCaption As String = "B Default caption"

    Public WriteOnly Property Caption() As String
        Set(ByVal Value As String)
            If myCaption <> value Then
                myCaption = value
            End If
        End Set
    End Property
End Class

Class Mypropertyinfo

    Public Shared Function Main() As Integer
        Console.WriteLine(ControlChars.CrLf & "Reflection.PropertyInfo")

        ' Define two properties.
        Dim Mypropertya As New Mypropertya()
        Dim Mypropertyb As New Mypropertyb()

        Console.Write(ControlChars.Cr & "Mypropertya.Caption = " & _
           Mypropertya.Caption)
        ' Mypropertyb.Caption cannot be read because
        ' there is no get accessor.
        ' Get the type and PropertyInfo.
        Dim MyTypea As Type = Type.GetType("Mypropertya")
        Dim Mypropertyinfoa As PropertyInfo = MyTypea.GetProperty("Caption")
        Dim MyTypeb As Type = Type.GetType("Mypropertyb")
        Dim Mypropertyinfob As PropertyInfo = MyTypeb.GetProperty("Caption")

        ' Get and display the CanRead property.
        Console.Write(ControlChars.CrLf & "CanRead a - " & _
           Mypropertyinfoa.CanRead)

        Console.Write(ControlChars.CrLf & "CanRead b - " & _
           Mypropertyinfob.CanRead)

        Return 0
    End Function
End Class
using System;
using System.Reflection;
 
// Define one readable property and one not readable.
public class Mypropertya
{
    private string caption = "A Default caption";
    public string Caption
    {
        get{return caption;}
        set {if(caption!=value) {caption = value;}
        }
    }
}
public class Mypropertyb
{
    private string caption = "B Default caption";
    public string Caption
    {
        set{if(caption!=value) {caption = value;}
        }
    }
}
  
class Mypropertyinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.PropertyInfo");
  
        // Define two properties.
        Mypropertya Mypropertya = new Mypropertya();
        Mypropertyb Mypropertyb = new Mypropertyb();
  
        Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
        // Mypropertyb.Caption cannot be read, because
        // there is no get accessor.
  
        // Get the type and PropertyInfo.
        Type MyTypea = Type.GetType("Mypropertya");
        PropertyInfo Mypropertyinfoa = MyTypea.GetProperty("Caption");
        Type MyTypeb = Type.GetType("Mypropertyb");
        PropertyInfo Mypropertyinfob = MyTypeb.GetProperty("Caption");
  
        // Get and display the CanRead property.
        Console.Write("\nCanRead a - " + Mypropertyinfoa.CanRead);
        Console.Write("\nCanRead b - " + Mypropertyinfob.CanRead);
  
        return 0;
    }
}
using namespace System;
using namespace System::Reflection;

// Define one readable property and one not readable.
public ref class Mypropertya
{
private:
   String^ caption;

public:
   Mypropertya()
      : caption( "A Default caption" )
   {}


   property String^ Caption 
   {
      String^ get()
      {
         return caption;
      }

      void set( String^ value )
      {
         if ( caption != value )
         {
            caption = value;
         }
      }

   }

};

public ref class Mypropertyb
{
private:
   String^ caption;

public:
   Mypropertyb()
      : caption( "B Default caption" )
   {}


   property String^ Caption 
   {
      void set( String^ value )
      {
         if ( caption != value )
         {
            caption = value;
         }
      }

   }

};

int main()
{
   Console::WriteLine( "\nReflection.PropertyInfo" );
   
   // Define two properties.
   Mypropertya^ mypropertya = gcnew Mypropertya;
   Mypropertyb^ mypropertyb = gcnew Mypropertyb;
   Console::Write( "\nMypropertya->Caption = {0}", mypropertya->Caption );
   
   // Mypropertyb.Caption cannot be read, because
   // there is no get accessor.
   // Get the type and PropertyInfo.
   Type^ MyTypea = Type::GetType( "Mypropertya" );
   PropertyInfo^ Mypropertyinfoa = MyTypea->GetProperty( "Caption" );
   Type^ MyTypeb = Type::GetType( "Mypropertyb" );
   PropertyInfo^ Mypropertyinfob = MyTypeb->GetProperty( "Caption" );
   
   // Get and display the CanRead property.
   Console::Write( "\nCanRead a - {0}", Mypropertyinfoa->CanRead );
   Console::Write( "\nCanRead b - {0}", Mypropertyinfob->CanRead );
   return 0;
}
import System.*;
import System.Reflection.*;

// Define one readable property and one not readable.
public class MyPropertyA
{
    private String caption = "A Default caption";

    /** @property 
     */
    public String get_Caption()
    {
        return caption ;
    } //get_Caption

    /** @property 
     */
    public void set_Caption (String value)
    {
        if (caption != value) {
            caption = value;
        }
    } //set_Caption
} //MyPropertyA

public class MyPropertyB
{
    private String caption = "B Default caption";

    /** @property 
     */
    public void set_Caption (String value)
    {
        if ( caption != value  ) {
            caption = value;
        }
    } //set_Caption
} //MyPropertyB

class MyPropertyInfo
{   
    public static void main(String[] args)
    {
        Console.WriteLine("\nReflection.PropertyInfo");

        // Define two properties.
        MyPropertyA myPropertyA =  new MyPropertyA();
        MyPropertyB myPropertyB =  new MyPropertyB();

        Console.Write(("\nMyPropertyA.Caption = " 
            + myPropertyA.get_Caption()));
        // MyPropertyB.Caption cannot be read, because
        // there is no get accessor.
        // Get the type and PropertyInfo.
        Type myTypeA = Type.GetType("MyPropertyA");
        PropertyInfo myPropertyInfoA = myTypeA.GetProperty("Caption");
        Type myTypeB = Type.GetType("MyPropertyB");
        PropertyInfo myPropertyInfoB = myTypeB.GetProperty("Caption");

        // Get and display the CanRead property.
        Console.Write(("\nCanRead A - " 
            + System.Convert.ToString(myPropertyInfoA.get_CanRead())));
        Console.Write(("\nCanRead B - " 
            + System.Convert.ToString(myPropertyInfoB.get_CanRead())));
    } //main
} //MyPropertyInfo
import System;
import System.Reflection;
 
//Make two properties, one readable and on not readable
 public class Mypropertya
 {
    private var caption : String = "A Default caption";
    public function get Caption() : String {
        return caption;
    }
    public function set Caption(value:String)
    {
        if(caption!=value) {caption = value;}
    }
 }
 public class Mypropertyb
 {
    private var caption : String = "B Default caption";
    public function set Caption(value:String) {
        if(caption!=value) {caption = value;}
    }
 }
  
 class Mypropertyinfo
 {
    public static function Main() : void
    {
       Console.WriteLine("\nReflection.PropertyInfo");
  
       //Build two properties
       var mypropertya : Mypropertya = new Mypropertya();
       var mypropertyb : Mypropertyb = new Mypropertyb();
  
       Console.Write("\nmypropertya.Caption = " + mypropertya.Caption);
       //Note: Mypropertyb.Caption cannot be read as
       // there is no get accessor
  
       //Get the type and PropertyInfo
       var MyTypea : Type = Type.GetType("Mypropertya");
       var Mypropertyinfoa : PropertyInfo = MyTypea.GetProperty("Caption");
       var MyTypeb : Type = Type.GetType("Mypropertyb");
       var Mypropertyinfob : PropertyInfo = MyTypeb.GetProperty("Caption");
  
       //Get and display the CanRead property
      
       Console.Write("\nCanRead a - " + Mypropertyinfoa.CanRead);
      
       Console.Write("\nCanRead b - " + Mypropertyinfob.CanRead);
  
    }
 }
 Mypropertyinfo.Main();
 /*
 Produces the following output
 
 Reflection.PropertyInfo
 Mypropertya.Caption = A Default caption
 CanRead a - True
 CanRead b - False
 */

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

PropertyInfo-Klasse
PropertyInfo-Member
System.Reflection-Namespace