PropertyInfo.CanWriteとは? わかりやすく解説

PropertyInfo.CanWrite プロパティ

プロパティ書き込むことができるかどうかを示す値を取得します

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

Public MustOverride ReadOnly
 Property CanWrite As Boolean
Dim instance As PropertyInfo
Dim value As Boolean

value = instance.CanWrite
public abstract bool CanWrite { get;
 }
/** @property */
public abstract boolean get_CanWrite ()

プロパティ
このプロパティ書き込むことができる場合trueそれ以外場合false

解説解説

プロパティset アクセサない場合は、書き込むことができません。

CanWrite プロパティ取得するには、最初に Type クラス取得します。そして、その Type から PropertyInfo取得します最後にPropertyInfo から CanWrite取得します

使用例使用例

2 つプロパティ定義する例を次に示します最初プロパティ書き込み可能で、CanWrite プロパティtrue です。2 番目のプロパティ書き込み不可で (set アクセサなし)、CanWrite プロパティ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
*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_PropertyInfo.CanWrite プロパティ

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

COM オブジェクトに、CanWrite プロパティへのバージョン依存しないアクセス用意されています。

このプロパティは、CLS準拠していません。  

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

Dim instance As _PropertyInfo
Dim value As Boolean

value = instance.CanWrite
bool CanWrite { get; }
property bool CanWrite {
    bool get ();
}
/** @property */
boolean get_CanWrite ()

プロパティ
このプロパティ書き込むことができる場合trueそれ以外場合false

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_PropertyInfo インターフェイス
_PropertyInfo メンバ
System.Runtime.InteropServices 名前空間



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

辞書ショートカット

すべての辞書の索引

PropertyInfo.CanWriteのお隣キーワード
検索ランキング

   

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



PropertyInfo.CanWriteのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS