# TryGetComponent

> The non-generic version of this method.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## TryGetComponent(Type, Component)

The non-generic version of this method.

```csharp
public bool TryGetComponent(Type type, out Component component)
```

### Parameters

**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of component to search for.**** (\[Component]\(/engine/6000.7/script-reference/unityengine/component)): The output argument that contains the component or `null`.

### Returns

| Type                                                          | Description                                                  |
| ------------------------------------------------------------- | ------------------------------------------------------------ |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns `true` if the component is found, `false` otherwise. |

### Remarks

This version of TryGetComponent is not as efficient as the Generic version (above), so you should only use it if necessary.

## TryGetComponent\<T>(T)

Gets the component of the specified type, if it exists.

```csharp
public bool TryGetComponent<T>(out T component)
```

### Parameters

**** (T): The output argument that contains the component or `null`.

### Returns

| Type                                                          | Description                                                  |
| ------------------------------------------------------------- | ------------------------------------------------------------ |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns `true` if the component is found, `false` otherwise. |

### Remarks

`TryGetComponent` attempts to retrieve the component of type `T` on the same GameObject as the component it's called on. For more information on usage and behavior of the search, refer to [Component.GetComponent](/engine/6000.7/script-reference/unityengine/component/getcomponent.md). The difference between this and [Component.GetComponent](/engine/6000.7/script-reference/unityengine/component/getcomponent.md) is that `TryGetComponent` doesn't allocate in the Editor if the requested component doesn't exist.

**Note**: This method doesn't search the hierarchy of parent or child GameObjects, but is confined to the GameObject the component it's called on is attached to. Because it only checks that GameObject, `TryGetComponent` returns the requested component whether the GameObject is active or inactive. The active state affects only the hierarchy-traversing methods such as [Component.GetComponentInChildren](/engine/6000.7/script-reference/unityengine/component/getcomponentinchildren.md), which take an `includeInactive` parameter.

### Examples

```csharp
using UnityEngine;

public class TryGetComponentExample : MonoBehaviour
{
    void Start()
    {
        if (TryGetComponent<HingeJoint>(out HingeJoint hinge))
        {
            hinge.useSpring = false;
        }
    }
}
```
