我正在尝试将一个可选参数传递给名为 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/