当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中的运行时为函数参数赋值默认值

如何解决《如何在C#中的运行时为函数参数赋值默认值》经验,为你挑选了1个好方法。

我有以下课程:

public class Location
{
    private int X { get; set; }
    private int Y { get; set; }
    private int Z { get; set; }

    public UpdateLocation(int X, int Y, int Z)
    {
        this.X = X;
        this.Y = Y;
        this.Z = Z;
    }
}

但是,有时我需要更新其中一些参数和所有参数.所以我在考虑一种初始化函数参数的方法,而不是将它们分配给局部变量,如:

public UpdateLocation(int X = this.X, int Y = this.Y, int Z = this.Z)
{
    this.X = X;
    this.Y = Y;
    this.Z = Z;
}

所以我可以像这样调用函数:

UpdateLocation(Z:1509);

但显然,这不起作用,因为参数默认值必须是编译时常量.任何想法如何解决这个问题,而不创建三个不同的更新功能(或更多)来更新这些变量?



1> Rabid Pengui..:
public UpdateLocation(int? X = null, int? Y = null, int? Z = null)
{
    this.X = X ?? this.X;
    this.Y = Y ?? this.Y;
    this.Z = Z ?? this.Z;
}

您也可以设置属性.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有