gpt4 book ai didi

c# - 为什么Point和Rectangle不能作为可选参数?

转载 作者:太空狗 更新时间:2023-10-29 22:14:20 26 4
gpt4 key购买 nike

我正在尝试将一个可选参数传递给名为 offset 的几何函数,它可能已指定也可能未指定,但 C# 不允许我执行以下任何操作。有办法实现吗?

  • 默认为空

    错误:“”类型的值不能用作默认参数,因为没有到类型“System.Drawing.Point”的标准转换

    public void LayoutRelative(.... Point offset = null) {}
  • 默认为空

    错误:'offset' 的默认参数值必须是编译时常量

    public void LayoutRelative(.... Point offset = Point.Empty) {}

最佳答案

如果您的默认值不需要任何特殊的初始化,则您不需要使用可空类型或创建不同的重载。您可以使用 default 关键字:

public void LayoutRelative(.... Point offset = default(Point)) {}

如果您想改用可空类型:

public void LayoutRelative(.... Point? offset = null)
{
if (offset.HasValue)
{
DoSomethingWith(offset.Value);
}
}

关于c# - 为什么Point和Rectangle不能作为可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com