NameObjectCollectionBase.IsReadOnly プロパティ
アセンブリ: System (system.dll 内)

/** @property */ protected boolean get_IsReadOnly () /** @property */ protected void set_IsReadOnly (boolean value)
NameObjectCollectionBase インスタンスが読み取り専用の場合は true。それ以外の場合は false。

読み取り専用のコレクションでは、コレクション作成後に要素の追加、削除、または変更はできません。
読み取り専用のコレクションは、コレクションの変更を防ぐラッパーがコレクションに組み込まれているに過ぎません。したがって、基になっているコレクションで変更が加えられた場合、読み取り専用のコレクションでもその内容が反映されます。

読み取り専用のコレクションを作成する方法については、次のコード例を参照してください。
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class MyCollection Inherits NameObjectCollectionBase Private _de As New DictionaryEntry() ' Gets a key-and-value pair (DictionaryEntry) using an index. Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry Get _de.Key = Me.BaseGetKey(index) _de.Value = Me.BaseGet(index) Return _de End Get End Property ' Adds elements from an IDictionary into the new collection. Public Sub New(d As IDictionary, bReadOnly As [Boolean]) Dim de As DictionaryEntry For Each de In d Me.BaseAdd(CType(de.Key, [String]), de.Value) Next de Me.IsReadOnly = bReadOnly End Sub 'New ' Adds an entry to the collection. Public Sub Add(key As [String], value As [Object]) Me.BaseAdd(key, value) End Sub 'Add End Class 'MyCollection Public Class SamplesNameObjectCollectionBase Public Shared Sub Main() ' Creates and initializes a new MyCollection that is read-only. Dim d = New ListDictionary() d.Add("red", "apple") d.Add("yellow", "banana") d.Add("green", "pear") Dim myROCol As New MyCollection(d, True) ' Tries to add a new item. Try myROCol.Add("blue", "sky") Catch e As NotSupportedException Console.WriteLine(e.ToString()) End Try ' Displays the keys and values of the MyCollection. Console.WriteLine("Read-Only Collection:") PrintKeysAndValues(myROCol) End Sub 'Main Public Shared Sub PrintKeysAndValues(myCol As MyCollection) Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value) Next i End Sub 'PrintKeysAndValues End Class 'SamplesNameObjectCollectionBase 'This code produces the following output. ' 'System.NotSupportedException: Collection is read-only. ' at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value) ' at SamplesNameObjectCollectionBase.Main() 'Read-Only Collection: '[0] : red, apple '[1] : yellow, banana '[2] : green, pear
using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); // Gets a key-and-value pair (DictionaryEntry) using an index. public DictionaryEntry this[ int index ] { get { _de.Key = this.BaseGetKey( index ); _de.Value = this.BaseGet( index ); return( _de ); } } // Adds elements from an IDictionary into the new collection. public MyCollection( IDictionary d, Boolean bReadOnly ) { foreach ( DictionaryEntry de in d ) { this.BaseAdd( (String) de.Key, de.Value ); } this.IsReadOnly = bReadOnly; } // Adds an entry to the collection. public void Add( String key, Object value ) { this.BaseAdd( key, value ); } } public class SamplesNameObjectCollectionBase { public static void Main() { // Creates and initializes a new MyCollection that is read-only. IDictionary d = new ListDictionary(); d.Add( "red", "apple" ); d.Add( "yellow", "banana" ); d.Add( "green", "pear" ); MyCollection myROCol = new MyCollection( d, true ); // Tries to add a new item. try { myROCol.Add( "blue", "sky" ); } catch ( NotSupportedException e ) { Console.WriteLine( e.ToString() ); } // Displays the keys and values of the MyCollection. Console.WriteLine( "Read-Only Collection:" ); PrintKeysAndValues( myROCol ); } public static void PrintKeysAndValues( MyCollection myCol ) { for ( int i = 0; i < myCol.Count; i++ ) { Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value ); } } } /* This code produces the following output. System.NotSupportedException: Collection is read-only. at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value) at SamplesNameObjectCollectionBase.Main() Read-Only Collection: [0] : red, apple [1] : yellow, banana [2] : green, pear */
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; public ref class MyCollection : public NameObjectCollectionBase { private: DictionaryEntry^ _de; // Gets a key-and-value pair (DictionaryEntry) using an index. public: property DictionaryEntry^ default[ int ] { DictionaryEntry^ get( int index ) { _de->Key = this->BaseGetKey( index ); _de->Value = this->BaseGet( index ); return( _de ); } } // Adds elements from an IDictionary into the new collection. MyCollection( IDictionary^ d, Boolean bReadOnly ) { _de = gcnew DictionaryEntry(); for each ( DictionaryEntry^ de in d ) { this->BaseAdd( (String^) de->Key, de->Value ); } this->IsReadOnly = bReadOnly; } // Adds an entry to the collection. void Add( String^ key, Object^ value ) { this->BaseAdd( key, value ); } }; public ref class SamplesNameObjectCollectionBase { public: static void Main() { // Creates and initializes a new MyCollection that is read-only. IDictionary^ d = gcnew ListDictionary(); d->Add( "red", "apple" ); d->Add( "yellow", "banana" ); d->Add( "green", "pear" ); MyCollection^ myROCol = gcnew MyCollection( d, true ); // Tries to add a new item. try { myROCol->Add( "blue", "sky" ); } catch ( NotSupportedException^ e ) { Console::WriteLine( e->ToString() ); } // Displays the keys and values of the MyCollection. Console::WriteLine( "Read-Only Collection:" ); PrintKeysAndValues( myROCol ); } static void PrintKeysAndValues( MyCollection^ myCol ) { for ( int i = 0; i < myCol->Count; i++ ) { Console::WriteLine( "[{0}] : {1}, {2}", i, myCol[i]->Key, myCol[i]->Value ); } } }; int main() { SamplesNameObjectCollectionBase::Main(); } /* This code produces the following output. System.NotSupportedException: Collection is read-only. at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value) at SamplesNameObjectCollectionBase.Main() Read-Only Collection: [0] : red, apple [1] : yellow, banana [2] : green, pear */
import System.* ; import System.Collections.* ; import System.Collections.Specialized.* ; public class MyCollection extends NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); // Gets a key-and-value pair (DictionaryEntry) using an index. /** @property */ public DictionaryEntry get_Item(int index) { _de.set_Key(this.BaseGetKey(index)); _de.set_Value(this.BaseGet(index)); return _de ; } //get_Item // Adds elements from an IDictionary into the new collection. public MyCollection(IDictionary d, boolean bReadOnly) { IDictionaryEnumerator objEnum = d.GetEnumerator(); while (objEnum.MoveNext()) { DictionaryEntry de = (DictionaryEntry)objEnum.get_Current(); this.BaseAdd(((String)(de.get_Key())), de.get_Value()); } this.set_IsReadOnly(bReadOnly); } //MyCollection // Adds an entry to the collection. public void Add(String key, Object value) { this.BaseAdd(key, value); } //Add } //MyCollection public class SamplesNameObjectCollectionBase { public static void main(String[] args) { // Creates and initializes a new MyCollection that is read-only. IDictionary d = new ListDictionary(); d.Add("red", "apple"); d.Add("yellow", "banana"); d.Add("green", "pear"); MyCollection myROCol = new MyCollection(d,true); // Tries to add a new item. try { myROCol.Add("blue", "sky"); } catch(NotSupportedException e) { Console.WriteLine(e.ToString()); } // Displays the keys and values of the MyCollection. Console.WriteLine("Read-Only Collection:"); PrintKeysAndValues(myROCol); } //main public static void PrintKeysAndValues(MyCollection myCol) { for(int i=0;i < myCol.get_Count(); i++) { Console.WriteLine("[{0}] : {1}, {2}",System.Convert.ToString(i) , myCol.get_Item(i).get_Key(), myCol.get_Item(i).get_Value()); } } //PrintKeysAndValues } //SamplesNameObjectCollectionBase /* This code produces the following output. System.NotSupportedException: Collection is read-only. at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd( String name, Object value) at SamplesNameObjectCollectionBase.main(String[] args) Read-Only Collection: [0] : red, apple [1] : yellow, banana [2] : green, pear */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からNameObjectCollectionBase.IsReadOnly プロパティを検索する場合は、下記のリンクをクリックしてください。

- NameObjectCollectionBase.IsReadOnly プロパティのページへのリンク