C#-如何使用空List作为可选参数
有人可以举个例子吗?
我尝试过 null
、string.Empty
和对象初始化,但它们不起作用,因为默认值在编译时必须是常量
Can somebody provide a example of this?
I have tried null
,string.Empty
and object initialization but they don't work since default value has to be constant at compile time
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
只需使用 null 合并运算符和空
List
的实例,问题在于,如果“param2”为 null 并且您分配了一个新引用,那么在调用中将无法访问它语境。
Just use the null coalescing operator and an instance of empty
List<string>
The problem with this is that if "param2" is null and you assign a new reference then it wouldn't be accessible in the calling context.
您还可以使用
default
执行以下操作,它是编译时常量(在List
的情况下为null
):您可以进一步简化为:
You may also do the following using
default
which IS a compile-time-constant (null
in the case of aList<T>
):You can simplify this even further to:
这是不可能的。您应该改用方法重载。
It is impossible. You should use method overloading instead.
正如其他人提到的,您将
null
分配给可选参数,在较新的版本中,当使用enable
时,您需要使用可为空注释来标记参数( ?) 并为其分配一个 null 值,否则会导致错误CS8625 - Cannot conversion null Literals to non-nullable引用类型。
As others mentioned you assign
null
to the optional parameter, in newer versions when using<Nullable>enable</Nullable>
you need to mark the parameter with the nullable annotation (?) and assign a null value to it, otherwise it will cause errorCS8625 - Cannot convert null literal to non-nullable reference type.
对于字符串而不是列表感到抱歉。
Null 在 4.0 上对我来说工作得很好,我使用的是 Visual Studio 2010
sorry about the string instead of list.
Null works fine for me on 4.0, i am using visual studio 2010
我喜欢这种方式,它比
??=
更具可读性I like it this way, it is more readable then
??=