为什么不能用数组做函数的参数?

bndare 2016-07-22 10:43:36

class Program
{
static void f(System.Int32[])//为什么是编译错误?
{

}
static void Main(string[] args)
{
var s = new[] { 1, 2, 3 };
Console.WriteLine(s.ToString());//打印System.Int32[]
f(s);
}
}

上面的小程序会有便衣错误,f的参数不能是这种形式。
问题,既然s就是System.Int32[],那么为它的类型还"不能"作为参数传递的类型呢,必须要转成其他的类型才可以? 这个是.net的运行时限制还是C#语言本身的某种限制?

谢谢。
...全文
288 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我叫小菜菜 2016-07-23
  • 打赏
  • 举报
回复
static void f(System.Int32[] s)
threenewbee 2016-07-23
  • 打赏
  • 举报
回复
static void f(System.Int32[]) -> static void f(int[] arr) var s = new[] { 1, 2, 3 }; -> var s = new int[] { 1, 2, 3 };
sunyaxingqq 2016-07-23
  • 打赏
  • 举报
回复
你只传了类型,未定义类型名称
妮娜风 2016-07-23
  • 打赏
  • 举报
回复
传参的基本概念是 :先声明类型,然后接着是该类型名字。 static void f(int[] arr)

110,571

社区成员

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

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

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