在C#中,这是有效的语法:

int[] numbers = {1, 2, 3, 4, 5};


我正在尝试对对象的属性使用类似的语法:

MyClass myinst = new MyClass();              // See Class Definition below
myinst.MinMax = {-3.141, 3.141};             // Invalid Expression
myinst.MinMax = new double[]{-3.141, 3.141}; // Works, but more verbose


我可以做一些想要的语法吗?

类定义

class MyClass
{
    public double[] MinMax
    {
        set
        {
            if (value.Length != 2) throw new ArgumentException();
            _yMin = value[0];
            _yMax = value[1];
        }
    }
};

最佳答案

double语法是多余的,因为可以通过属性的类型来推断数组的类型,所以您可以做的最好的是:

myinst.MinMax = new[] {-3.141, 3.141};

关于c# - 在C#属性上使用初始化程序语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19372863/

10-09 00:40