Member '<membername>' implicitly defines a member '<implicitmembername>' which has the same name as a type parameter

A member of a generic class generates an implicit member with the same name as a type parameter for the class.

The Visual Basic compiler creates implicit members corresponding to certain programming elements you declare. The following table summarizes these implicit, or synthetic, members.

Declared element

Implicitly created members

Enumeration

value__ member

Event

add_<eventname> procedure

remove_<eventname> procedure

<eventname>Event field

<eventname>EventHandler delegate

Property

get_<propertyname> procedure

set_<propertyname> procedure

My. collection variable

m_<variablename>Static variable

<variablename> property

get_<variablename> procedure

set_<variablename> procedure

WithEvents variable

_<variablename> variable

<variablename> property

get_<variablename> procedure

set_<variablename> procedure

Because of the possibility of name conflicts, you should avoid naming any declared programming element using the same form as any of these implicit members. For example, you should avoid any element name that begins with get_ or set_.

Error ID: BC32070

To correct this error

  • If the name of the type parameter is flexible, change it to avoid conflicts with the names listed in the preceding table.

  • If the type parameter must retain its name, change the name of the class member to avoid conflicts with the names listed in the preceding table.

See Also

Concepts

Declared Element Names

Generic Types in Visual Basic

Reference

Type List