C#与.NET4高级编程(核心编程结构)

  • 一:方法和参数修饰
    1 静态方法可以直接调用。无需创建类进行实例化
    2 
    3 class program
    4 {5 public int Add(int x,int y){return x+y;}
    6 }

    c#参数修饰符:out   ref    params
    out:输出参数由被调用的方法赋值,因此它按引用传递。如果被调用的方法没有给输出参数赋值,就会出现编译器错误。
    ref:调用者赋值,并且可以由被调用的方法可选地重新赋值。如果被调用的方法未能给ref参数赋值,也不会有编译器错误
    params:这个参数修饰符允许将一组可变数量的参数作为单独的逻辑参数进行传递。方法只能有一个params修饰符,而且必须是方法的最后一个参数,事实上。你不会经常使用params修饰符。但要知道的是。基础类库中的许多方法都使用了这个c#语言特性

    //out 修饰符
    static void My(out int a,out  string b,out bool c)
    {
    a=9;
    b="1";
    c=true;
    }
    //调用者调用My方法,注意在调用和实现该方法时,必须使用out修饰符。
    static void Main(string[] args)
    {
    console.writeline(***********)
    int a;string b;bool c;
    My(out a,out b,out c)
    console.writeLine("int is {0}",a);
    console.writeLine("string is {0}",b);
    console.writeLine("bool is {0}",c);
    console.readline();
    }

    params修饰符支持参数数组的使用。params关键字可以把可变数量的参数(相同类型)作为单个逻辑参数传给方法。同样,如果调用者传入强类型数组或以逗号分隔的项列表,以params关键字标记的参数就可以被处理。OK上代码。。
    创建一个函数,它允许调用者传入任何数量的参数并返回计算后的平均值。

    static double dd(params double[] values)
            {
                Console.WriteLine("YOU SET ME {0} double", values.Length);
                double sum = 0;
                if (values.Length==0)
                    return sum;
                for (int i = 0; i < values.Length; i++)
                {
                    sum += values[i];
                    return (sum / values.Length);
                }
            }

    二:c#数组操作
    数组是一组通过数字索引来访问的数据项,更精确地说,数组是一组相同类型的数据点(int数组,string数组,sportscars数组等)。如下代码所示:

     static void Arrays()
            {
                Console.WriteLine("=>simple Array creation");
                int[] Ints = new int[3];
                Ints[0] = 100;
                Ints[1] = 200;
                Ints[2] = 300;
                foreach(int i in Ints)
                {
                    Console.WriteLine(i);
                //初始化一个100项的字符串数组,编号0-99
                string[] books = new string[100];
                Console.WriteLine();
            }
     static void Arrays()
            {//多维数组
               int [,] myArray=new int[6,6];
                for (int i = 0; i < 6; i++)
                {
                    for (int j = 0; j < 6; j++)
                {
                 Console.Write(myArray[i,j]+"\t");
                        Console.WriteLine();
                }
                }
            }

    数组作为参数(和返回值)
    只要我们创建一个数组,就完全可以把它作为参数进行传递或者作为成员返回值接收。例如下:

    static void Arrays(int [] MyArray)
            {
                for(int i=0;i<MyArray.Length;i++)
               Console.WriteLine("Item {0} is {1}",i,MyArray);
            }
            static string[] GetStringArray()
            {
                string[] thestring={"Hello","from","GetStringArray"};
                return thestring;
            }
         static void Pass()
         {
             //传递数组作为参数
             int [] ages={20,20};
             Arrays(ages);
             //获取数组作为返回值
             string[] strs=GetStringArray();
             foreach (string s in strs)
        {
                 Console.WriteLine(s);
        }

     

posted @ 2013-05-20 23:33  Mr.liub  阅读(479)  评论(0)    收藏  举报