asp.net数组 ref和out传递数组

asp教程.net数组 ref和out传递数组

与所有的out参数一样,在使用数组类型的out参数前必须先为其赋值,即必须由被调用方为其赋值

class testarraysclass
{
 static void main()
 {
  //declare and initialize an array
  int[,] thearray = new int[5,10];
  system.console.writeline("the array has {0} dimensions",thearray.rank);
  }
 }
 //output:the array has 2 dimensions

数组实际上是对象【.net的所有对象都是派生自object对象】,而不只是像c和c++中那样的可寻址连续内存区域。array是所有数组是所有数组类型的抽象基类型。可以使用array具有属性以及其他成员。例如使用length属性来获取数组的长度:

int[] number = {1,2,3,4}
int lengthofnumbers = number.length;

使用ref和out传递数组
。例如:

static void testmethod1(out int[] arr)
{
    //definite assignment of array
    arr = new int[10];
    }

与所有的ref参数一样,数组类型的ref参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的ref参数更改为调用的结果。
例如,可以为数组赋以null值,或将其初始化为另一个数组。例如:

static void testmethod2(ref int[] arr)
{
    // arr initalized to a different array
    arr = new int[10];
    }

   
下面我们用2个示例来说明out与ref在将数组传递给方法时的用法差异。
在此例中,在调用方(main方法)中声明数组thearray,并在fillarray方法中初始化此数组。然后将数组元素返回调用方并显示。

class testout
{
    static void fillarray(out int[] arr)
    {
        arr = new int[5] {1,2,3,4,5};      
        }
    static void main()
    {
        int[] thearray;
        fillarray(out thearray);
        system.console.writeline("array elements are:");
        for(int i=0;i<thearray.length;i++)
        {
            system.console.write(thearray[i] +" ");
            }
            system.console.writeline("press any key to exit.");
        }
    }

在下例中,在调用方(main方法)中初始化数组thearray,并通过使用ref参数将其传递给fillarray方法。 在fillarray方法中更新某些数组元素。然后将数组元素返回调用并显示。

class testref
{
    static void fillarray(ref int[] arr)
    {
        int (arr == null)
        arr = new int[10];
        }
        arr[0] = 1111;
        arr[4] = 5555;
    }
  
    static void main()
    {
        int[] thearray = {1,2,3,4,5};
        fillarray(ref thearray);
        system.console.writeline("array elements are:");
        for (int i = 0; i < thearray.length; i++)
        {
            system.console.write(thearray[i] + " ");
        }

        }

       
ps教程:注意理解out与ref的不同。

时间: 2024-09-20 00:06:47

asp.net数组 ref和out传递数组的相关文章

php获取从html表单传递数组的方法_php技巧

本文实例讲述了php获取从html表单传递数组的方法.分享给大家供大家参考.具体如下: 将表单的各个元素的name都设置成同一个数组对象既可以以数组的方式传递表单值 html页面如下: <form method="post" action="arrayformdata.php"> <label>Tags</label> <input type="text" name="tags[]"/

asp.net(c#)ref,out ,params的区别_实用技巧

NO.1 params 一个可以让方法(函数)的拥有可变参数的关键字. 原则:在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例(拷贝到vs2005中即可用,下面不再说明) 复制代码 代码如下: public partial class Form1 : Form { public static void UseParams(params int[] list) { string temp = ""; for (int i

springmvc jquery传递数组,

问题描述 springmvc jquery传递数组, 代码目的是把前台被选中的选项的id存入数组,再将数组传给input.通过form提交,在控制器拦截到并接收这个数组. 但是我现在接收到的是一个字符串. 同样的前台页面与拦截器代码.在另外一台笔记本上接收的是一个id数组.搞不清为啥 恳请各位解答 以下是源码.前台 1.<!DOCTYPE html > <!--zui.js,jQuery.js用于菜单的展现--> 问卷详情 ${survey.description} $(docum

mvc模式前台界面向后台传值的问题,如何传递数组。

问题描述 mvc模式前台界面向后台传值的问题,如何传递数组. 在前台页面上得到了一个数组,如何在后台就收并直接调用呢?求大神o(╯□╰)o 解决方案 前台:var str=""1234"";//你的数组值$.Post(""/home/index""{ary:str}function(data){ })后台:string str =request.form[""ary""];//拿到传来的

JS异步传递数组Action接受的实现与疑惑

最近开发中遇到了页面传递数组到Action后台List类型,接受到的list对象并不是想象的按照数组元素位置对应的接受,例如数组的0位置插入到list对象的0位置, 而是数组的全部内容全部插入到了list集合的第一位置.经过反复的试验,没有找到很好的解决办法,只能把这种粗糙的实现方式记录下来,以求抛砖引玉望大家能给出更好的实现方式. 这是jsp页面代码:异步提交数组到Action中: <html> <head> <meta http-equiv="Content-T

复杂类型javabean(数组成员)在jsp中的运用:在jsp页面间传递数组

js|数组|页面 在论坛上常看见有人问如何在jsp页面间传递数组,其实用javabean是很容易实现的. 下面给个简单的例子,只要遵循javabean的游戏规则,什么类型的数据结构都可以传递: 1:写一个测试用的javabean:package com.infoearth;public class JobBean{private int[] b;  /**  * @return 返回 b.  */ public int[] getB() {  return b; } /**  * @param

C++中通过模板向函数传递数组长度

我们知道,在C/C++中,向一个函数传递数组时,实际上传送的是这个数组的首地址,也即是一个指针类型.所以,在函数中,我们没有办法知道这个传递进来的数组的长度到底为多长,一个普遍的方法就是再增加一个参数,来记录传递进来的数组的长度. 不过在C++中,使用模板机制,可以很好地解决这个问题,如下面的代码所示: #include <iostream> using namespace std; template<class T, int N> void array(T (&param

jquery ajax 向后台传递数组参数示例

在JS中向后台传递数组参数,如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],具体的原因及解决方法如下,有类似问题的朋友可以参考下   需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象.基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],原因如下: 在后台接收的时候,只能用request来接收,request.getParameterValues()方法

php获取从html表单传递数组的方法

 这篇文章主要介绍了php获取从html表单传递数组的方法,实例分析了php操作表单元素的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php获取从html表单传递数组的方法.分享给大家供大家参考.具体如下: 将表单的各个元素的name都设置成同一个数组对象既可以以数组的方式传递表单值 html页面如下: ? 1 2 3 4 5 6 7 8 9 10 <form method="post" action="arrayformdata.php&quo