知识大全 C# 语言规范--1.3 变量和参数

Posted 变量

篇首语:努力一点,现在想要的以后你都会有。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# 语言规范--1.3 变量和参数相关的知识,希望对你有一定的参考价值。

C# 语言规范--1.3 变量和参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  变量表示存储位置 每个变量都属于一种类型 它确定什么样的值可以存储在该变量中 局部变量是在方法 属性或索引器中声明的变量 局部变量是通过指定类型名称和声明符(它指定变量名和可选的初始值)定义的 如

    

  int a;

  int b = ;

  但局部变量声明也可以包含多个声明符 a 和 b 的声明可以重写为

    

  int a b = ;

  一个变量必须先赋值 然后才能使用它的值 示例

    

  class Test

  

  static void Main ()

  int a;

  int b = ;

  int c = a + b;   // error a not yet assigned

  

  

  

    

  导致编译时错误 因为它试图在给变量 a 赋值之前使用它

    

  字段是与类或结构或与类或结构的实例关联的变量 用 static 修饰符声明的字段定义静态变量 不用此修饰符声明的字段则定义实例变量 静态字段与类型关联 而实例变量与实例关联 示例

    

  using Personnel Data;

  class Employee

  

  private static DataSet ds;

  public string Name;

  public decimal Salary;

  

  

    

  显示了具有一个私有静态变量和两个公共实例变量的 Employee 类

    

  形参声明也定义变量 有四种类型的参数 值参数 引用参数 输出参数和参数数组

    

  值参用于 in 参数传递 在此过程中 自变量的值被传入方法中 因为一个值参在方法中用自己的变量存储(而非原自变量) 所以对此参数的修改不会影响到原自变量 值参的变量是通过复制原自变量的值来初始化的 示例

    

  using System;

  class Test

  static void F(int p)

  Console WriteLine( p = p);

  p++;

  

  static void Main()

  int a = ;

  Console WriteLine( pre:  a = a);

  F(a);

  Console WriteLine( post: a = a);

  

  

    

  显示了一个具有名为 p 的值参数的方法 F 示例输出结果如下

    

  pre:  a =

  p =

  post: a =

  即使值参数 p 已修改

    

   引用参数 用于 by reference 参数传递 在此过程中 引用参数 就是调用者提供的自变量的别名 引用参数 并不定义自己的变量 而是直接引用原自变量 因此对 引用参数 的修改就将直接影响相应原自变量的值 引用参数用 ref 修饰符来声明 示例

    

  using System;

  class Test

  static void Swap(ref int a ref int b)

  int t = a;

  a = b;

  b = t;

  

  static void Main()

  int x = ;

  int y = ;

    

  Console WriteLine( pre:  x = y = x y);

  Swap(ref x ref y);

  Console WriteLine( post: x = y = x y);

  

  

  显示了一个具有两个引用参数的 Swap 方法 产生的输出为

    

  pre:  x = y =

  post: x = y =

    

  在形参声明和形参的使用中都必须使用 ref 关键字 在调用位置使用 ref 可以引起对参数的特别注意 这样阅读代码的开发人员就会知道参数值可以因调用而更改

    

  对于输出参数来说 调用者提供的自变量的初始值并不重要 除此之外 输出参数与引用参数类似 输出参数是用 out 修饰符声明的 示例

    

  using System;

  class Test

  static void Divide(int a int b out int result out int remainder)

  result = a / b;

  remainder = a % b;

  

  static void Main()

  for (int i = ; i < ; i++)

  for (int j = ; j < ; j++)

  int ans r;

  Divide(i j out ans out r);

  Console WriteLine( / = r i j ans r);

  

  

  

    

  显示了一个 Divide 方法 该方法包含两个输出参数 一个参数用于除法的结果 另一个参数用于余数

    

  对于值 引用和输出这三种类型的参数 在调用方提供的自变量和用于表示它们的参数之间存在一对一的对应关系 参数数组则允许存在多对一关系 多个参数可以用一个自变量来表示 换言之 参数数组允许可变长度的自变量列表

    

  参数数组用 params 修饰符声明 一个给定的方法只能有一个参数数组 而且它必须始终是最后一个指定的参数 参数数组的类型总是一维数组类型 调用方可以传递一个属同一类型的数组变量 或任意多个与该数组的元素属同一类型的自变量 例如 示例

    

  using System;

  class Test

  

  static void F(params int[] args)

  Console WriteLine( # of arguments: args Length);

  for (int i = ; i < args Length; i++)

  Console WriteLine( \\targs[ ] = i args[i]);

  

  static void Main()

  F();

  F( );

  F( );

  F( );

  F(new int[] );

  

  

    

  显示了带数目可变的 int 参数的方法 F 以及对此方法的若干个调用 输出为

    

  # of arguments:

  # of arguments:

  args[ ] =

  # of arguments:

  args[ ] =

  args[ ] =

  # of arguments:

  args[ ] =

  args[ ] =

  args[ ] =

  # of arguments:

  args[ ] =

    

  args[ ] =

  args[ ] =

  args[ ] =

  

  此介绍中出现的大部分示例使用 Console 类的 WriteLine 方法 此方法的参数替换行为(如下面的示例所示)

    

  int a = b = ;

  Console WriteLine( a = b = a b);

    

  是使用参数数组完成的 为适应常见的各种需要 WriteLine 方法有若干个重载的方法供选用 这些方法中 有些需传递固定个数的参数 有些使用了参数数组

    

  namespace System

  

  public class Console

  

  public static void WriteLine(string s)

  public static void WriteLine(string s object a)

  public static void WriteLine(string s object a object b)

  

  public static void WriteLine(string s params object[] args)

  

cha138/Article/program/net/201311/13596

相关参考

知识大全 C# 语言规范--2.2.1 文法表示法

C#语言规范--2.2.1文法表示法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  词法文法和句

知识大全 C# 语言规范--1.14 属性

C#语言规范--1.14属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#是一种命令式语言

知识大全 C# 语言规范--1.9 接口

C#语言规范--1.9接口  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个接口定义一个协定实

知识大全 C# 语言规范--1.1 开始

C#语言规范--1.1开始  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  clothes经典性h

知识大全 C# 语言规范--1.11 枚举

C#语言规范--1.11枚举  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  枚举类型声明为一组相

知识大全 论.net命名规范

  用Pascal规则来命名方法和类型(笔者注:单词首字母大写)  >  用Camel规则来命名局部变量和方法的参数(笔者注:首单词小写其余单词首字母大写笔者使用此方式命名成员变量)    >  所有

知识大全 Sql语言基础教程 sql的变量和运算符

Sql语言基础教程sql的变量和运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 C#教程:隐式类型的局部变量

C#教程:隐式类型的局部变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  隐式类型的局部变量 

知识大全 在C语言中的实型变量分为2种类型,它们是()和()

在C语言中的实型变量分为2种类型,它们是()和()  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在C

知识大全 C#里面中将字符串转为变量名

C#里面中将字符串转为变量名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!