Does Godot 3.1.1 mono support C# 7.0 is operator pattern matching(type casting)?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By plyr0

Hi, I cannot use the following syntax with is operator type pattern matching. It is just annoyance, but I would like to know official plans, if it will be supported:

public override void _Input(InputEvent event0){
    if(event0 is InputEventMouseButton mbe){ //HERE
        if(mbe.Pressed && mbe.ButtonIndex == (int)ButtonList.Left){

Scripts\Paddle.cs(16,44): error CS1026: ) expected
Scripts\Paddle.cs(16,47): error CS1002: ; expected
Scripts\Paddle.cs(16,47): error CS1513: } expected

Windows 10 x64
Microsoft (R) Build Engine version 14.0.23107.0
Mono version

This works:

if(event0 is InputEventMouseButton){
    var mbe = event0 as InputEventMouseButton;

This too:

var mbe = event0 as InputEventMouseButton;
    if(mbe != null){

C# style guide says I need to stick with C# 6.0
But in official docs it is used type pattern matching

I created an issue in the documentation repository about this: "Mouse and input coordinates" example doesn't follow the C# style guide · Issue #2540 · godotengine/godot-docs · GitHub

Calinou | 2019-06-17 13:10

Installed Visual Studio 2019 Community, and it works great. Probably MSBuild 15/19 alone would be also fine. Thanks for help.

plyr0 | 2019-06-20 08:32