Unexpected symbol `=>' in class, struct, or interface member declaration

I’ve came across a script written by a different author. I tried to implement it to my scene but received this error:

“Unexpected symbol `=>’ in class,
struct, or interface member
declaration”

I’ve tried to look into lambda syntax but still confused on how it works and how to get rid of this error message. Here’s the snippets

public IEnumerable<object> Description => ((IEnumerable<object>) this.description);
public IEnumerable<CSGPolygon> Polygons => this.root.AllPolygons;
public BSP Clone() => new BSP(this.root.Clone(), this.Bounds, this.description, this._createDescription);

What am I missing?

Personally not a fan of lambdas, but I think your syntax is missing the declaration of the argument types. Seeing as you don’t appear to be passing any arguments, however, this would just be empty parentheses (like those that follow the signature of a regular method signature - void Start(), etc.):

public IEnumerable<object> Description = () => ((IEnumerable<object>) this.description);
public IEnumerable<CSGPolygon> Polygons = () => this.root.AllPolygons;
public BSP Clone() = () => new BSP(this.root.Clone(), this.Bounds, this.description, this._createDescription);

I might be completely wrong though!