如何将null的等效项指定为struct类型的默认参数

w

如何定义一个函数,以便可以有选择地传递struct参数,但又可以知道函数内部是否传递了struct参数?我要完成的工作类似于:

function SomeFunction(string str = null)
{
    if (str == null) { ... }
}

不带参数调用上述函数将触发if (str == null)...条件:

SomeFunction();

上面的方法不适用于struct类型的参数。给定以下结构:

public struct MyStruct
{
    public int SomeInt;
    public double SomeDouble;
}

这将产生一个错误,表明没有标准转换:

public function SomeFunction(MyStruct mystruct = null) { }

但是当我将函数定义为:

public function SomeFunction(MyStruct mystruct = default(MyStruct)) { }

并使用以下函数调用该函数:

SomeFunction();

进入函数时,mystruct包含0SomeInt和0.00 SomeDouble这些可能是合法值,这使我无法知道参数是实际传递给函数还是留空。

我如何定义此参数,以便如果在调用中未指定该参数,则可以在函数中检测到该参数?

格罗夫斯NL

使用可为null的类型(可以选择使用重载方法,如下所示DoSomething),以检查是否传递了值。

public function SomeFunction(MyStruct? mystruct)
{
   if(mystruct.HasValue)
       DoSomething(mystruct.Value);
   else
       DoSomething();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Clojure Spec:如何将元组指定为函数参数?

如何将联合类型指定为对象键Typescript

当将数据框指定为“列表”类型参数时,如何将数据框传递给“ geom_qq”函数中的“ dparams”参数?

如何将本地模块指定为npm软件包依赖项

如何将点分隔表指定为sql查询的参数

如何将 List<MyCustomType> 指定为 UML 接口属性的“返回类型”

如何将 PySpark 函数的返回类型指定为数据帧?

在Python 3.5中,如何将函数指定为类型提示?

如何将特定的字符串值指定为 dart 中的类型

使用python创建类对象,如何将特定类型指定为条目?

如何在Rust中将类型参数指定为函数参数?

如何将一个属性指定为null或引用?

将字符串列表指定为函数参数类型

将所需的函数参数类型指定为箭头函数

如何在Typescript中将类定义指定为参数类型

如何将Python单元测试指定为具有数据库依赖项?

如何将断点条件指定为“小于”命中数?

如何将渲染器指定为SVG?

了解 R 如何将绘图指定为对象

如何将输入指定为日期时间?

Hibernate-如何将参数绑定为nvarchar

如何将变量绑定为多种类型?LINQ

如何在Julia中将抽象类型的子类型指定为类型参数?

Java:如何将类类型参数强制为与通用方法中指定的通用类型相同?

python中的默认舍入模式,以及如何将其指定为另一个?

如何将struct作为参数传递

如何将空列表、空字典和布尔值指定为机器人框架关键字的默认值。?

在将消息发送到节点js中的azure服务总线队列时,如何将内容类型指定为application / json?

如何将参数传递给待解决类型的“子”项的构造函数