# PortReference

> Identifies a port inside a visualization PortReference.Context so visualization changes can be applied to it.

## Definition

* **Type:** Struct
* **Namespace:** [Unity.GraphToolkit.Editor.GraphVisualization](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization.md)
* **Assembly:** UnityEditor
* **Implements:** [IEquatable\<PortReference>](https://learn.microsoft.com/dotnet/api/system.iequatable-1)

```csharp
public readonly struct PortReference : IEquatable<PortReference>
```

## Remarks

Obtain a [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md) from [Context.GetPortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/context/getportreference.md), providing the unique identifier of the port. The reference is only meaningful for the [PortReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/context.md) that produced it. You can use its methods to set, retrieve, or clear the port preview for that specific port in the graph canvas. Port preview is a visualization feature that displays a label next to a port in the graph canvas. This label provides additional information about the port's value or state. Two [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md) values are equal when they share the same [PortReference.PortID](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/portid.md) and refer to the same [PortReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/context.md) instance.

Additional Resources: [PortReference.Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/context.md), [Context.GetPortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/context/getportreference.md)

## Examples

```csharp
using var context = Registry.CreateVisualizationContext(graph.ID);
context.GetPortReference(portID).SetPreview("42.0");
if (context.GetPortReference(portID).TryGetPreview(out var displayValue))
    Debug.Log(displayValue);
context.GetPortReference(portID).ClearPreview();
```

## Properties

| Property                                                                                                         | Description                                                     |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [Context](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/context.md) | Visualization context that produced the current port reference. |
| [PortID](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/portid.md)   | Unique identifier of the port the reference points to.          |

## Methods

| Method                                                                                                                       | Description                                                                                                                                                              |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [ClearPreview](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/clearpreview.md)   | Clears the port preview for the specified port.                                                                                                                          |
| [Equals](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/equals.md)               | Indicates whether the current [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md) is equal to another object. |
| [GetHashCode](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/gethashcode.md)     | Returns a hash code for the current [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md).                      |
| [SetPreview](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/setpreview.md)       | Sets the string value to display in a port preview for a given port.                                                                                                     |
| [TryGetPreview](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/trygetpreview.md) | Retrieves the current string value assigned to the port preview for a given port.                                                                                        |

## Operators

| Operator                                                                                                                   | Description                                                                                                                                        |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| [operator ==](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/op-equality.md)   | Compares two [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md) values for equality.   |
| [operator !=](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference/op-inequality.md) | Compares two [PortReference](/engine/6000.7/script-reference/unity/graphtoolkit/editor/graphvisualization/portreference.md) values for inequality. |
