.NET Frameword 3.5下c#的默认参数(Optional, DefaultParameterValue)的问题

main_dir 2011-09-20 02:12:43
方法:编译通过
        private void TestMethod(string foo,

[Optional, DefaultParameterValue("bb")] string x)
{
}


调用:调用时出现提示错误:Error:No overload for method 'TestMethod' takes '1' arguments

TestMethod("a");


请教一下Optional, DefaultParameterValue 的正确用法
...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
main_dir 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 main_dir 的回复:]
方法:编译通过
C# code
private void TestMethod(string foo,

[Optional, DefaultParameterValue("bb")] string x)
{
}



调用:调用时出现提示错误:Error:No overload for method 'TestMethod' t……
[/Quote]

但http://www.oschina.net/question/5189_9125,从类例的文章中看到的都是可以实现的,难到只有在c#4.0中才能吗?
Icedmilk 2011-09-20
  • 打赏
  • 举报
回复
这个属性只能用于导入的函数,例如
        [DllImport("TestCppDll.dll", EntryPoint = "test", CharSet = CharSet.Unicode)]
static extern int test(string path, [Optional, DefaultParameterValue("bb")]string result);


看看他的全名就知道了
System.Runtime.InteropServices.OptionalAttribute

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧