C#里如何给函数传数组类型的值

C#里如何给函数传数组类型的值 例如:
void func(double []vect)
{ .... }
void main()
{
double[,]particle=new double [3,3];
int i;
double []value=new double[3];
for(i=0;i<3;i++)
value[i]=func(particle[i]);
}
是double func(double []vect),我写错了,func(particle[i])会报错,说是参数不匹配,c#的检错好像和C的不一样
我是想把一个二维数组中的一维数组当作个参数传给func函数

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication1
7 {
8 class Program
9 {
10 /* 先来了解一下什么是实参, 什么是形参.
11 所谓形参其实也就是说函数定义的时候所带的参数. 比如 static void Myfuntion(int i , int t) 其中 int i and int t 都是形参.
12 * 而实参呢? 实参代表的是将要传入函数里面进行运算的两个参数, 可以是变量,也可以是常量.只要与形参类型相同即可*/
13
14 // 函数分为传值与传址两种方式. 传值不影响实参的数据,传址则会影响实参的数据. 下面用几段代码来示例
15 //在使用传值或者传址的选择上应当遵循这样一个规则.
16 //1. 传值是将形参的内容复制一份给实参.
17 //2. 传址是将形参与实参同时指向一个地址.
18 //如果在数据较大的情况下使用传值的方式必然会影响程序性能, 所以当数据较大时可以使用传址的方式.使用传址的方式会让程序的效率大大提升.
19 static void Myfuntion(int i , int t) //这个函数将以传值的方式运行
20 {
21 if (i > t)
22 i += 5;
23 else
24 t += 5;
25 }
26
27 static void Myfuntion1(ref int i, ref int t) // 这个函数将会以传址的方式进行运算. 因为前面加了ref关键字, 函数只要加了ref关键字就会是以传址的方式进行运算
28 {
29 if (i > t)
30 i += 5;
31 else
32 t += 5;
33 }
34
35 static void Myfuntion2(int[] array) //这里注意, 这个函数没有带ref关键字, 但是也是以传址的方式进行运算. 因为在C#中,引用类型都是以传址的方式进行运算,而array属于数组, 数组又属于引用类型,所以....
36 {
37 for (int i = 0; i < array.Length; i++)
38 {
39 array[i] = 40;
40 }
41 }
42
43 static void Myfuntion3 (int i , int t , out int s) //这个函数虽然返回值为Void(代表没有返回值) , 其实有返回值 因为我们加了一个新的关键字, out , 这个关键字能够将 s 单独返回. 同样out关键字也是以传址的方式进行运算的. 还有,out 参数可以不用赋值,即使你赋值了也会被忽略
44 {
45 s = 50;
46 if (i > t)
47 i += 5;
48 else
49 t += 5;
50 }
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-27
楼主,你是想把一个数组传递到函数func中,还是想把一个数组元素的值传到函数func中?
如果你是想把二维数组particle传到func中的话这样做:
void func(double[,] vect)
{....}
void main()
{
double[,] particle=new double [3,3];
int i;
double[] value=new double[3];
for(i=0;i<3;i++)
{
value[i]=func(particle);
}
}
你把数组名传进去就行了。要注意,实参和形参的数据类型要保持一致。
你原来写的,value[i]=func(particle[i]); particle[i]只是一个数组元素,而形参是个一维数组。这样是不行的。如果你想传一个数组元素的值,那你func函数中的形参要和被传的数组元素的类型一致。希望能帮到你。
第2个回答  2010-12-27
这样调用对啊,不过func没有返回值,所以value[i]=func(particle[i]); 这样应该会报错的本回答被网友采纳
第3个回答  2010-12-28
Class c
{
public void demo(params int[] i){}
static Main()
{
c n=new c();
int[] luo=new int[3]{1,2,3};
n.demo(luo);
}
}
第4个回答  2010-12-28
= =他们都说了,我没得说了。

C#里如何给函数传数组类型的值
35 static void Myfuntion2(int[] array) \/\/这里注意, 这个函数没有带ref关键字, 但是也是以传址的方式进行运算. 因为在C#中,引用类型都是以传址的方式进行运算,而array属于数组, 数组又属于引用类型,所以...36 { 37 for (int i = 0; i < array.Length; i++)38 { 39 ...

c#数组是值传递还是引用传递
static void Main(string[] args) { int[] arr = { 1, 2, 3 };Console.WriteLine("Before calling method: " + string.Join(",", arr));ModifyArray(arr);Console.WriteLine("After calling method: " + string.Join(",", arr));Console.ReadLine();} static void ModifyArray(int[] ...

在C#中使用线程,线程的方法函数中需要带一个数组的参数传递进去_百度...
threadStart mm=new threadStart (doit);thread nn=new thread(mm);nn.start(数组);public void doit(object sender){ float[] _mydata = sender as float[];\/\/do something } 另外建议:把新建线程设为后台线程,即添加: nn.IsBackground = true;这一句话,这样当你应用程序退出之后,该线程...

C#中如何将二维数组作为函数的参数传递?
\/\/函数声明:public void GetAllElement(int[][] obj){ \/\/操作 } 调用:GetAllElement(intlist);当然intlist是int型的二维数组,跟一维数组没啥区别

如何用C#编写函数输出数组
最简单粗暴的做法: 把这个方法的修饰符设置为public,然后把窗体的实例传递给第二个窗体,这样就可以直接调用了 public class FormA:Form{ public int[] Calc(){ } } public class Program{ public static FormA A;public void Main(){ A = new FormA();A.ShowDialog();} } public class Form...

C# 方法调用时params如何传入指定参数
1. 参数数组---params(可以将相同类型,数量可变的多个参数传给一个方法)2. 引入:一般,参数的数量都是由目标方法声明所确定。然而,有时我们希望参数的数量是可变的。或许最好的方法是为方法传一个数组。然而,这会使调用代码变得稍微复杂一些,因为需要事先构造一个数组,再将这个数组作为参数来...

c#winform中怎样在一个窗口定义一个数组后在其他窗口中给它赋值
通过构造函数传值,把数组传过去,然后 直接就OK了,具体格式 如下:接收值窗体格式:窗体名Form1 public int _aa { get; set; } public 类名(这里面写接收的值或者对象:int aa){ InitializeComponent();_aa=aa;} 传值窗体格式:窗体名Form2 Form1 fm=new Form1(可以选择有参还是无参,通过...

C#函数参数个数不定实参部分怎么表达?
一般的方法可以自己写多重载的方法来适应不同的参数(一般也是这样做的); 如果你实在觉得有很多不确定个数的参数可能会用时 那么你可以用一个数组来存放这些参数

c# 构造函数中如何给数组赋值
class A { int s[10];public: A(){ for(int i=0i<10;i++)s[i]=0;\/\/默认构造给数组赋初值为零 } A(int s1[]){ for(int i=0i<10;i++)s[i]=s1[i]; \/\/有参构造给数组赋值。} };

C# 怎样将二维数组中的一维作函数的参数传递(最好不要新数组暂存数据...
[怎样将二维数组中的一维作函数的参数传递]你可以弄成差错数组 所谓差错数组,就是A[a][b]这样的。b是可变长度。int[][] A=new int[10][];A[0]=new int[3];A[1]=new int[5];这是可以的 所以 A[2]=x();自然也可以了 A[10,800]这种写法也不是不可能。有个求地址的方法。把A[a...

相似回答