I have the class `Person`:

```
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public void Deconstruct(out int id) { id = Id; }
}

```

And when I tried to deconstruct it with the following code:

```
var (id) = new Person();

```

The compiler says: 

> 
> Cannot infer the type of implicitly-typed deconstructor variable 'id'.
> 
> 
> 

The compiler doesn't say it when there are more than one parameters. Like this:

```
public void Deconstruct(out int id, out string name) { id = Id; name = Name; }

var (id, name) = new Person();

```