相关疑难解决方法(0)

为什么默认方法参数必须是C#中的编译时常量

编辑1:我知道有一些替代品,如伸缩式,这是一个纯粹的教育问题.

我知道这是真的,但为什么一定是这样呢?看起来像是这样的:

public class Foo{

    private int bar;

    public void SetBar(int baz = ThatOtherClass.GetBaz(3)){
        this.bar = baz;
    }

}
Run Code Online (Sandbox Code Playgroud)

编译器可以将方法更改为:

public void SetBar(int baz){

//if baz wasn't passed:
baz = ThatOtherClass.GetBaz(3);

this.bar = baz;

}
Run Code Online (Sandbox Code Playgroud)

为什么那不起作用,或者不行,这只是一个设计决定?

c# default compile-time-constant

8
推荐指数
1
解决办法
502
查看次数

标签 统计

c# ×1

compile-time-constant ×1

default ×1