使用命名参数会有额外的运行时成本吗?

Gyö*_*sek 2 c#-4.0

考虑以下结构:

    public struct vip
    {
        string email;
        string name;
        int category;

        public vip(string email, int category, string name = "")
        {
            this.email = email;
            this.name = name;
            this.category = category;
        }
    }
Run Code Online (Sandbox Code Playgroud)

以下两个电话之间是否存在性能差异?

var e = new vip(email: "foo", name: "bar", category: 32);

var e = new vip("foo", 32, "bar");
Run Code Online (Sandbox Code Playgroud)

如果没有定义可选参数,是否有区别?

小智 5

我相信没有.它只是一种语言/编译器功能,如果你愿意,可以称它为语法糖.生成的CLR代码应该相同.