CollectionBase Standard Introduction

Generated Source Code Base Class

System.Collections.CollectionBase

Description

The CollectionBase abstract base class provides the functionality for a "basic" collection, the generated source code enhances this functionality by adding the following, type safe, members: Item or indexer property, Add, Contains, CopyTo, IndexOf, Insert and Remove methods. The generated collection class is decorated with the Serializable attribute, therefore, providing that the contained items are also serializable, the entire collection can be serialized for storage or transmission.

A private, nested, read only wrapper class can be generated as part of the CollectionBase derived collection class source code. The read only wrapper is derived from the generated collection type, therefore it can be returned, transparently, from any property or method that is typed as the generated collection class. The read only wrapper class does not allow write operations on the underlying collection when called on an instance of the relevant generated collection class type or when called explicitly on the IList interface.

A private, nested, thread safe, synchronized wrapper class can be generated as part of the CollectionBase derived collection class source code. The synchronized wrapper is derived from the generated collection type, therefore it can be returned, transparently, from any property or method that is typed as the generated collection class. The synchronized wrapper class performs thread safe operations on the underlying collection when called on an instance of the relevant generated collection class type or when called explicitly on the IList interface.

Generated Source Code .Net Framework Version Compatibility

Versions: 3.5, 3.0, 2.0 and 1.1

Generation Properties

You will be required to select/specify the following values in the generation property wizard as part of the source code generation process:

PropertyDescription
Language You can generate either CSharp or Visual Basic source code
Collected Class Name The Type or Class name of the objects that are to be stored in the collection
Collection Class Name The Type or Class name of the collection
Namespace The collection class namespace (CSharp only)
Allow Null Items Specify True if the collection is to allow null items to be added, False if not
Wrapper In addition to the collection class you can also generate a read only or synchronized wrapper class for the collection

Note

If the collected class is not in the same namespace as the collection class, a using (Imports in Visual Basic) statement will need to be added to the generated source code.

Visual Basic Only

If the collection class is not in the default (project) namespace i.e. it is in a sub-namespace, a Namespace statement will need to be added to the generated source code.

Terms and Conditions

Blayd Software retain the copyright and other intellectual rights to the source code as originally generated. However, once you have the source code, you may change it by altering members, adding new members or removing members and you may use the source code in your own personal or commercial projects, either in its original form or with your own alterations. We strongly recommend that you read the full terms and conditions for the use of the generated source code before continuing.

Hints and Tips

We have put together a page of hints and tips to help you get the most out of our .Net Framework source code generator. If you have any doubts or queries about the generation properties and their influence on the generated source code or any other queries we recommend that you read the hints and tips before continuing.

CollectionBase Standard

The generated source code is supplied free of charge for personal use, however, if the source code is to be used in a commercial project we request that you make a donation to help us to cover the cost of developing and testing the source code and the cost of providing the online code generator service. You may also make a donation even if the source code is for personal use. Although we do not expect you to donate for personal use we would appreciate the gesture.

The option to make a donation to help cover the cost of the service is provided on the generated source code page, click the "Continue" button to specify the generation properties and generate your source code.