<t>I just did some tests of the four options that I know about.<br/>
<br/>
Measure-Command {$(1..1000) | Out-Null}<br/>
<br/>
TotalMilliseconds : 76.211<br/>
<br/>
Measure-Command {[Void]$(1..1000)}<br/>
<br/>
TotalMilliseconds : 0.217<br/>
<br/>
Measure-Command {$(1..1000) > $null}<br/>
<br/>
TotalMilliseconds : 0.2478<br/>
<br/>
Measure-Command {$null = $(1..1000)}<br/>
<br/>
TotalMilliseconds : 0.2122<br/>
<br/>
## Control, times vary from 0.21 to 0.24<br/>
Measure-Command {$(1..1000)}<br/>
<br/>
TotalMilliseconds : 0.2141<br/>
<br/>
```<br/>
<br/>
So I would suggest that you use anything but `Out-Null` due to overhead. The next important thing, to me, would be readability. I kind of like redirecting to `$null` and setting equal to `$null` myself. I use to prefer casting to `[Void]`, but that may not be as understandable when glancing at code or for new users.<br/>
<br/>
I guess I slightly prefer redirecting output to `$null`.<br/>
<br/>
```<br/>
Do-Something > $null<br/>
<br/>
```<br/>
<br/>
**Edit**<br/>
<br/>
After stej's comment again, I decided to do some more tests with pipelines to better isolate the overhead of trashing the output.<br/>
<br/>
Here are some tests with a simple 1000 object pipeline.<br/>
<br/>
```<br/>
## Control Pipeline<br/>
Measure-Command {$(1..1000) | ?{$_ -is [int]}}<br/>
<br/>
TotalMilliseconds : 119.3823<br/>
<br/>
## Out-Null<br/>
Measure-Command {$(1..1000) | ?{$_ -is [int]} | Out-Null}<br/>
<br/>
TotalMilliseconds : 190.2193<br/>
<br/>
## Redirect to $null<br/>
Measure-Command {$(1..1000) | ?{$_ -is [int]} > $null}<br/>
<br/>
TotalMilliseconds : 119.7923<br/>
<br/>
```<br/>
<br/>
In this case, `Out-Null` has about a 60% overhead and `> $null` has about a 0.3% overhead.<br/>
<br/>
**Addendum 2017-10-16:** I originally overlooked another option with `Out-Null`, the use of the `-inputObject` parameter. Using this the overhead seems to disappear, however the syntax is different:<br/>
<br/>
```<br/>
Out-Null -inputObject ($(1..1000) | ?{$_ -is [int]})<br/>
<br/>
```<br/>
<br/>
And now for some tests with a simple 100 object pipeline.<br/>
<br/>
```<br/>
## Control Pipeline<br/>
Measure-Command {$(1..100) | ?{$_ -is [int]}}<br/>
<br/>
TotalMilliseconds : 12.3566<br/>
<br/>
## Out-Null<br/>
Measure-Command {$(1..100) | ?{$_ -is [int]} | Out-Null}<br/>
<br/>
TotalMilliseconds : 19.7357<br/>
<br/>
## Redirect to $null<br/>
Measure<br/>
<br/>
*(Réponse tronquée)*</t>