# ChangeEvent<T>

> Sends an event when a value in a field changes.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.UIElements](/engine/6000.7/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule
* **Inherits from:** [EventBase\<ChangeEvent\<T>>](/engine/6000.7/script-reference/unityengine/uielements/eventbase1.md)
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable), [IChangeEvent](/engine/6000.7/script-reference/unityengine/uielements/ichangeevent.md)

```csharp
public class ChangeEvent<T> : EventBase<ChangeEvent<T>>, IDisposable, IChangeEvent
```

## Constructors

| Constructor                                                                                     | Description  |
| ----------------------------------------------------------------------------------------------- | ------------ |
| [ChangeEvent\`1()](/engine/6000.7/script-reference/unityengine/uielements/changeevent1/ctor.md) | Constructor. |

## Properties

| Property                                                                                              | Description                          |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------ |
| [newValue](/engine/6000.7/script-reference/unityengine/uielements/changeevent1/newvalue.md)           | The new value.                       |
| [previousValue](/engine/6000.7/script-reference/unityengine/uielements/changeevent1/previousvalue.md) | The value before the change occured. |

## Methods

| Method                                                                              | Description                          |
| ----------------------------------------------------------------------------------- | ------------------------------------ |
| [Init](/engine/6000.7/script-reference/unityengine/uielements/changeevent1/init.md) | Sets the event to its initial state. |

## Static Methods

| Method                                                                                        | Description                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetPooled](/engine/6000.7/script-reference/unityengine/uielements/changeevent1/getpooled.md) | Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use `Dispose()` to release them. |

## Inheritance

**Inherited Members:**

* [EventBase\<ChangeEvent\<T>>.SetCreateFunction(Func\<ChangeEvent\<T>>)](/engine/6000.7/script-reference/unityengine/uielements/eventbase1/setcreatefunction.md)
* [EventBase\<ChangeEvent\<T>>.TypeId()](/engine/6000.7/script-reference/unityengine/uielements/eventbase1/typeid.md)
* [EventBase\<ChangeEvent\<T>>.GetPooled()](/engine/6000.7/script-reference/unityengine/uielements/eventbase1/getpooled.md)
* [EventBase\<ChangeEvent\<T>>.Dispose()](/engine/6000.7/script-reference/unityengine/uielements/eventbase1/dispose.md)
* [EventBase\<ChangeEvent\<T>>.eventTypeId](/engine/6000.7/script-reference/unityengine/uielements/eventbase1/eventtypeid.md)
* [EventBase.RegisterEventType()](/engine/6000.7/script-reference/unityengine/uielements/eventbase/registereventtype.md)
* [EventBase.PreDispatch(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/eventbase/predispatch.md#predispatch\(ipanel\))
* [EventBase.PostDispatch(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/eventbase/postdispatch.md#postdispatch\(ipanel\))
* [EventBase.StopPropagation()](/engine/6000.7/script-reference/unityengine/uielements/eventbase/stoppropagation.md)
* [EventBase.StopImmediatePropagation()](/engine/6000.7/script-reference/unityengine/uielements/eventbase/stopimmediatepropagation.md)
* [EventBase.timestamp](/engine/6000.7/script-reference/unityengine/uielements/eventbase/timestamp.md)
* [EventBase.bubbles](/engine/6000.7/script-reference/unityengine/uielements/eventbase/bubbles.md)
* [EventBase.tricklesDown](/engine/6000.7/script-reference/unityengine/uielements/eventbase/tricklesdown.md)
* [EventBase.ignoreDisabledElements](/engine/6000.7/script-reference/unityengine/uielements/eventbase/ignoredisabledelements.md)
* [EventBase.target](/engine/6000.7/script-reference/unityengine/uielements/eventbase/target.md)
* [EventBase.isPropagationStopped](/engine/6000.7/script-reference/unityengine/uielements/eventbase/ispropagationstopped.md)
* [EventBase.isImmediatePropagationStopped](/engine/6000.7/script-reference/unityengine/uielements/eventbase/isimmediatepropagationstopped.md)
* [EventBase.propagationPhase](/engine/6000.7/script-reference/unityengine/uielements/eventbase/propagationphase.md)
* [EventBase.currentTarget](/engine/6000.7/script-reference/unityengine/uielements/eventbase/currenttarget.md)
* [EventBase.dispatch](/engine/6000.7/script-reference/unityengine/uielements/eventbase/dispatch.md)
* [EventBase.imguiEvent](/engine/6000.7/script-reference/unityengine/uielements/eventbase/imguievent.md)
* [EventBase.originalMousePosition](/engine/6000.7/script-reference/unityengine/uielements/eventbase/originalmouseposition.md)
* [EventBase.pooled](/engine/6000.7/script-reference/unityengine/uielements/eventbase/pooled.md)
