PropertyInfo.CanWrite Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan nilai yang menunjukkan apakah properti dapat ditulis.
public:
abstract property bool CanWrite { bool get(); };
public abstract bool CanWrite { get; }
member this.CanWrite : bool
Public MustOverride ReadOnly Property CanWrite As Boolean
Nilai Properti
true
jika properti ini dapat ditulis ke; jika tidak, false
.
Penerapan
Contoh
Contoh berikut mendefinisikan dua properti. Properti pertama dapat ditulis dan CanWrite
propertinya adalah true
. Properti kedua tidak dapat ditulis (tidak set
ada aksesor), dan CanWrite
propertinya adalah false
.
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;
}
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;
}
}
Imports System.Reflection
' 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
Keterangan
CanWrite
true
mengembalikan jika properti memiliki set
aksesor, bahkan jika aksesor adalah private
, internal
(atau Friend
di Visual Basic), atau protected
. Jika properti tidak memiliki set
aksesor, metode akan mengembalikan false
.
Untuk mendapatkan nilai CanWrite properti:
Type Dapatkan objek jenis yang menyertakan properti .
Type.GetProperty Panggil untuk mendapatkan PropertyInfo objek yang mewakili properti .
Ambil nilai CanWrite properti .