using System.Linq.Expressions;
using System.Collections.Generic;
Expression<Func<object>> intFieldIdentifier = () => test.ValueField;
Expression<Func<object>> listFieldIdentifier = () => test.ReferenceField;
Expression<Func<object>> intIdentifier = () => test.SomeInt;
Expression<Func<object>> listIdentifier = () => test.SomeList;
Console.WriteLine(CheckExpr<object>(intFieldIdentifier));
Console.WriteLine(CheckExpr<object>(listFieldIdentifier));
Console.WriteLine(CheckExpr<object>(intIdentifier));
Console.WriteLine(CheckExpr<object>(listIdentifier));
string CheckExpr<T>(Expression<Func<T>> expr) => expr.Body switch
UnaryExpression _ => "UnaryExpression",
MemberExpression _ => "MemberExpression",
public int ValueField = 2;
public List<object> ReferenceField = new();
public int SomeInt { get; set; } = 42;
public List<object> SomeList { get; set; } = new();