Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft einen Wert ab, der angibt, ob in die Eigenschaft geschrieben werden kann.
Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public MustOverride ReadOnly Property CanWrite As Boolean
'Usage
Dim instance As PropertyInfo
Dim value As Boolean
value = instance.CanWrite
public abstract bool CanWrite { get; }
public:
virtual property bool CanWrite {
bool get () abstract;
}
/** @property */
public abstract boolean get_CanWrite ()
public abstract function get CanWrite () : boolean
Eigenschaftenwert
true, wenn in diese Eigenschaft geschrieben werden kann, andernfalls false.
Hinweise
Wenn die Eigenschaft über keinen set-Accessor verfügt, kann nicht in sie geschrieben werden.
Um die CanWrite-Eigenschaft abzurufen, rufen Sie zunächst den Type der Klasse ab. Über Type rufen Sie PropertyInfo ab. Aus PropertyInfo rufen Sie den CanWrite-Wert ab.
Beispiel
Im folgenden Beispiel werden zwei Eigenschaften definiert. Die erste Eigenschaft ist schreibbar, daher ist die CanWrite-Eigenschaft true. Die zweite Eigenschaft ist nicht schreibbar (es ist kein set-Accessor vorhanden), und die CanWrite-Eigenschaft ist daher false.
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
' Define one writable property and one not writable.
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 ReadOnly Property Caption() As String
Get
Return myCaption
End Get
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()
' Read and display the property.
Console.Write(ControlChars.CrLf & "Mypropertya.Caption = " & _
Mypropertya.Caption)
Console.Write(ControlChars.CrLf & "Mypropertyb.Caption = " & _
Mypropertyb.Caption)
' Write to the property.
Mypropertya.Caption = "A- No Change"
' Mypropertyb.Caption cannot be written to because
' there is no set accessor.
' Read and display the property.
Console.Write(ControlChars.CrLf & "Mypropertya.Caption = " & _
Mypropertya.Caption)
Console.Write(ControlChars.CrLf & "Mypropertyb.Caption = " & _
Mypropertyb.Caption)
' 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 CanWrite property.
Console.Write(ControlChars.CrLf & "CanWrite a - " & _
Mypropertyinfoa.CanWrite)
Console.Write(ControlChars.CrLf & "CanWrite b - " & _
Mypropertyinfob.CanWrite)
Return 0
End Function
End Class
using System;
using System.Reflection;
// Define one writable property and one not writable.
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
{
get{return caption;}
}
}
class Mypropertyinfo
{
public static int Main()
{
Console.WriteLine("\nReflection.PropertyInfo");
// Define two properties.
Mypropertya Mypropertya = new Mypropertya();
Mypropertyb Mypropertyb = new Mypropertyb();
// Read and display the property.
Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
Console.Write("\nMypropertyb.Caption = " + Mypropertyb.Caption);
// Write to the property.
Mypropertya.Caption = "A- No Change";
// Mypropertyb.Caption cannot be written to because
// there is no set accessor.
// Read and display the property.
Console.Write("\nMypropertya.Caption = " + Mypropertya.Caption);
Console.Write ("\nMypropertyb.Caption = " + Mypropertyb.Caption);
// 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 CanWrite property.
Console.Write("\nCanWrite a - " + Mypropertyinfoa.CanWrite);
Console.Write("\nCanWrite b - " + Mypropertyinfob.CanWrite);
return 0;
}
}
using namespace System;
using namespace System::Reflection;
// Define one writable property and one not writable.
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
{
String^ get()
{
return caption;
}
}
};
int main()
{
Console::WriteLine( "\nReflection.PropertyInfo" );
// Define two properties.
Mypropertya^ mypropertya = gcnew Mypropertya;
Mypropertyb^ mypropertyb = gcnew Mypropertyb;
// Read and display the property.
Console::Write( "\nMypropertya->Caption = {0}", mypropertya->Caption );
Console::Write( "\nMypropertyb->Caption = {0}", mypropertyb->Caption );
// Write to the property.
mypropertya->Caption = "A- No Change";
// Mypropertyb.Caption cannot be written to because
// there is no set accessor.
// Read and display the property.
Console::Write( "\nMypropertya->Caption = {0}", mypropertya->Caption );
Console::Write( "\nMypropertyb->Caption = {0}", mypropertyb->Caption );
// 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 CanWrite property.
Console::Write( "\nCanWrite a - {0}", Mypropertyinfoa->CanWrite );
Console::Write( "\nCanWrite b - {0}", Mypropertyinfob->CanWrite );
return 0;
}
import System.*;
import System.Reflection.*;
// Define one writable property and one not writable.
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 String get_Caption()
{
return caption ;
} //get_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();
// Read and display the property.
Console.Write(("\nMyPropertyA.Caption = "
+ myPropertyA.get_Caption()));
Console.Write(("\nMyPropertyB.Caption = "
+ myPropertyB.get_Caption()));
// Write to the property.
myPropertyA.set_Caption("A- No Change");
// MyPropertyB.Caption cannot be written to because
// there is no set accessor.
// Read and display the property.
Console.Write(("\nMyPropertyA.Caption = "
+ myPropertyA.get_Caption()));
Console.Write(("\nMyPropertyB.Caption = "
+ myPropertyB.get_Caption()));
// 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 CanWrite property.
Console.Write(("\nCanWrite A - "
+ System.Convert.ToString(myPropertyInfoA.get_CanWrite())));
Console.Write(("\nCanWrite B - "
+ System.Convert.ToString(myPropertyInfoB.get_CanWrite())));
} //main
} //MyPropertyInfo
import System;
import System.Reflection;
//Make two properties, one writable and one not writable
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 get Caption() : String {
return caption;
}
}
class Mypropertyinfo
{
public static function Main() : void
{
Console.WriteLine("\nReflection.PropertyInfo");
//Build two properties
var mypropertya : Mypropertya = new Mypropertya();
var mypropertyb : Mypropertyb = new Mypropertyb();
//Read and display the property
Console.Write("\nmypropertya.Caption = " + mypropertya.Caption);
Console.Write("\nmypropertyb.Caption = " + mypropertyb.Caption);
//Write to the property
mypropertya.Caption = "A- I have been changed";
//Note: Mypropertyb.Caption cannot be written as
// there is no set accessor
//Read and display the property
Console.Write("\nmypropertya.Caption = " + mypropertya.Caption);
Console.Write ("\nmypropertyb.Caption = " + mypropertyb.Caption);
//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 CanWrite property
Console.Write("\nCanWrite a - " + Mypropertyinfoa.CanWrite);
Console.Write("\nCanWrite b - " + Mypropertyinfob.CanWrite);
}
}
Mypropertyinfo.Main();
/*
This code produces the following output:
Reflection.PropertyInfo
mypropertya.Caption = A Default caption
mypropertyb.Caption = B Default caption
mypropertya.Caption = A- I have been changed
mypropertyb.Caption = B Default caption
CanWrite a - true
CanWrite 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