WinRT和可选参数发行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinRT和可选参数发行相关的知识,希望对你有一定的参考价值。
我最近遇到了一个问题,在WinRT项目中,我的功能中没有可选参数。
还有其他替代方法吗?我什至尝试了[optional]关键字。不起作用。
答案
在Windows运行时组件项目中,公共功能不能具有可选参数,只有私有功能可以具有它们。
但是如果您将该项目转换为类库,即使对于公共功能,也可以具有可选参数。
另一答案
另一种可能的方法:使用替代签名。
public void TheFunction (string param1, string param2)
{
[...] //processing stuff
}
public void TheFunction (string param1)
{
return TheFunction(param1, String.Empty);
}
另一答案
以下内容将无法编译:
void PrintStuffOptional(string stuff, [Optional] int num)
{
Console.WriteLine(stuff + ": " + num.ToString());
}
结果:
找不到类型或名称空间名称“ Optional”(您是否缺少using指令或程序集引用?)
和/或:
找不到类型或名称空间名称'OptionalAttribute'(您是否缺少using指令或程序集引用?)
在文件顶部添加using System.Runtime.InteropServices;
应该可以解决这些问题。但是,从C#4.0开始,您可以这样声明可选参数:
void PrintStuff(string stuff, int num = 0)
{
Console.WriteLine(stuff + ": " + num.ToString());
}
如果调用方法没有为num
参数提供值,它将使用默认值0
。因此,void PrintStuff()
将同时起作用:
PrintStuff("a string to print");
PrintStuff("a string to print", 37239);
以上是关于WinRT和可选参数发行的主要内容,如果未能解决你的问题,请参考以下文章