程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#基本語法:辦法參數詳解

C#基本語法:辦法參數詳解

編輯:C#入門知識

C#基本語法:辦法參數詳解。本站提示廣大學習愛好者:(C#基本語法:辦法參數詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#基本語法:辦法參數詳解正文


●值參數 :一個值參數相當於一個部分變量,當應用值參數的時刻,將會分派一個新的存儲地位,將實參拷貝到該地位,並將該拷貝值傳遞給該辦法。是以,值參數只能將值帶進辦法,然則不克不及帶出辦法,而不會影響實參的值。

●援用參數:當應用援用參數的時刻,將不會分派一個新的存儲地位,In other words,援用參數能將值帶進辦法,也能帶出辦法,因此會影響實參的值。以下例:

using System;

namespace prg1
{
  class Paramstest
  {  
    //值參數應用演示
    public static void Transposition_1(int a, int b)
    {
      int temp = a;
      a = b;
      b = temp;
    }
    //援用參數應用演示
    static void Transposition_2(ref int a,ref int b)
    {
      int temp = a;
      a = b;
      b = temp;
    }
    static void Main(string[] args)
    {
      int a = 25;
      int b = 30;
      //挪用Transposition_1
      Console.WriteLine("挪用Transposition_1之前a={0},b={1}",a,b);
      Transposition_1(a,b);
      Console.WriteLine("挪用Transposition_1以後a={0},b={1}", a, b);
      Console.WriteLine("====================\n");
      //挪用Transposition_2
      Console.WriteLine("挪用Transposition_2之前a={0},b={1}", a, b);
      Transposition_2(ref a,ref b);
      Console.WriteLine("挪用Transposition_2以後a={0},b={1}", a, b);
      Console.WriteLine("====================\n");
      Console.ReadKey();
    }
  }
}


●輸入參數:依據表層寄義猜想其只能輸入不克不及輸出辦法的參數,我們開端緊隨上例驗證一下,參加以下代碼:

static void Transposition_2(ref int a,ref int b)
    {
      int temp = a;
      a = b;
      b = temp;
    }

編譯器便會提示a,b未賦值的報錯,異樣我們也便可以直不雅的看到,輸入參數不克不及將值帶進辦法,只能將值輸入辦法。從上面的例子中可以看出在辦法的外部停止了輸入參數的賦值操作,是以不管在哪裡應用輸入參數都必需提早賦值,這也是應用任何類型參數的個性。

//Use of output parameters
    static void Transposition_3(string name,out string FistName,out string LastName)
    {
      int i=name.Length;//Get the length of the string
      while(i>0)
      {
       char chparm=name[i-1];
       if (chparm == '.')
       {
         break;
       }
       i--;
      }
      FistName = name.Substring(0,i-1);
      LastName = name.Substring(i);

    }
//挪用Transposition_3
      string DoName,Nmark; 
      Transposition_3("rohelm.X",out DoName,out Nmark);
      Console.WriteLine("Domain Name of Myself: {0}",DoName);
      Console.WriteLine("The last name of my Domain Name: {0}",Nmark);


●參數數組:簡而言之,就是辦法傳遞的單元是個數組,並且可所以一維數組或許交織數組(形如int[][]),然則不克不及是多維數組(形如;string[,]),可認為參數數組制訂一個或多個實參,個中每個實參都是一個表達式,另外參數數組和統一類型的值參數完整等效。例以下例:
 

class Prmarry
  {
    public static void Show(params string[] name)
    {
      Console.WriteLine("Array contains the number of elements: {0}", name.Length);
      Console.Write("elements of NameArray:");
      for (int i = 0; i < name.Length; i++)
      {
        Console.Write("{0,10}",name[i]);
      }
    }
  }
//挪用Show
      string[] NameArray = { "rohelm.X", "Boolean", "rrats" };
      Prmarry.Show(NameArray); 
      Console.ReadKey();

也不知咋弄的,我的輸出法和編譯器似乎在玩躲貓貓,一會紛歧會的就不支撐漢字輸出了,我也真能用英語輸出了,無法。

上面是這一日記的參考源碼,可以全體剖析一下:

using System;

namespace prg1
{
  class Paramstest
  {  
    //值參數應用演示
    public static void Transposition_1(int a, int b)
    {
      int temp = a;
      a = b;
      b = temp;
    }
    //援用參數應用演示
    static void Transposition_2(ref int a,ref int b)
    {
      int temp = a;
      a = b;
      b = temp;
    }
    //Use of output parameters
    static void Transposition_3(string name,out string FistName,out string LastName)
    {
      int i=name.Length;//Get the length of the string
      while(i>0)
      {
       char chparm=name[i-1];
       if (chparm == '.')
       {
         break;
       }
       i--;
      }

      FistName = name.Substring(0, i - 1);
      LastName = name.Substring(i);
    }
    static void Main(string[] args)
    {
      int a = 25;
      int b = 30;
      //挪用Transposition_1
      Console.WriteLine("挪用Transposition_1之前a={0},b={1}",a,b);
      Transposition_1(a,b);
      Console.WriteLine("挪用Transposition_1以後a={0},b={1}", a, b);
      Console.WriteLine("====================\n");
      //挪用Transposition_2
      Console.WriteLine("挪用Transposition_2之前a={0},b={1}", a, b);
      Transposition_2(ref a,ref b);
      Console.WriteLine("挪用Transposition_2以後a={0},b={1}", a, b);
      Console.WriteLine("====================\n");
      //挪用Transposition_3
      string DoName,Nmark; 
      Transposition_3("rohelm.X",out DoName,out Nmark);
      Console.WriteLine("Domain Name of Myself: {0}",DoName);
      Console.WriteLine("The last name of my Domain Name: {0}"+"\n",Nmark);
      //挪用Show
      string[] NameArray = { "rohelm.X", "Boolean", "rrats" };
      Prmarry.Show(NameArray); 
      Console.ReadKey();
    }
  }
  class Prmarry
  {
    public static void Show(params string[] name)
    {
      Console.WriteLine("Array contains the number of elements: {0}", name.Length);
      Console.Write("elements of NameArray:");
      for (int i = 0; i < name.Length; i++)
      {
        Console.Write("{0,10}",name[i]);
      }
    }
  }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved