3.3 输出参数
与参考参数类似,输出参数不会打开新的内存区域。 与引用参数的区别在于:
在调用方法之前,无需初始化变量。
输出类型参数用于传递方法返回的数据。
调用包含引用参数的方法时,在传递参数时,需要使用 out 关键字将参数声明为输出参数。 方法返回后,传递的变量被视为已初始化。
我们以参数和输出参数为例进行比较。
static void squareref( ref int x )
x = x * x;
static void squareout( out int x )
x = 8;
x = x * x;
static void main()
int i = 3, j ;
squareref(ref i);
squareout(out j);
console.writeline("i = , j = ", i, j);
该函数的输出为:
i = 9, j = 64
分析。 从上面的例子中,我们可以看到参考参数和输出参数之间的区别。 squareref 方法使用引用参数方法,而 squareout 方法使用输出参数方法,两种方法都做完全相同的事情,都是平方的。 只需在 squareout 方法中将 x 的值初始化为 8 即可。
3.4 数组参数
数组也可以用作方法的参数,这些方法用于表示称为数组参数的参数,数组参数只能放在参数列表的末尾,数组参数只能是一维数组。
声明数组参数需要使用 params 关键字
using system;
class test;
console.writeline("thesum:"+sum(var));console.writeline("the sum:"+sum(10,20,30,40,50));
程序被编译并执行输出:
the sum:15 the sum:150
3.5. 变量:作用持续时间和范围
变量的持续时间是指变量在内存中存在的时间量。
变量的作用域是指程序中可以引用变量的位置。 某些变量可以在整个程序中引用,而其他变量只能在程序的有限部分中引用。
以下示例说明了实例变量和局部变量的作用域:
using system;
class test
public int s = 1;
public void methoda()
int s = 23;
console.writeline("s in methoda is :"+ s+"after entering methoda" );
s;console.writeline("s in methoda is :"+ s+"before le**ing methoda" );
public void methodb()
static void main()
程序的输出如下:
s in methoda is :23after entering methoda
s in methoda is :24before le**ing methoda
s in methodb is :1after entering methodb
s in methodb is :10after entering methodb
3.6 递归
递归是一个重要的概念,在现实生活中,我们可能会遇到这样的问题:一个复杂的问题可以分解成简单的问题,一个简单问题的解决方法和复杂问题的解决方法是一样的,我们知道一个简单问题的解决方法,这就是为什么我们可以用递归来解决一个复杂的问题。
我们知道数学中的阶乘表示为 n!,计算公式为:
n! = n * n-1)*(n-2)*…1
现在让我们用递归的思想来考虑因子求值,因子可以写成:
n! = n *(n-1)!
3.7 方法重载
在C语言中,可以在一个类中定义多个同名的方法,只要它们具有不同的参数即可,这称为方法重载。
在下面的示例中,方法重载用于计算 int 和 double 数据的平方。
public int square(int x)
return x*x;
public double square(double x)
需要强调的是,重载方法必须至少满足以下条件之一:
参数的数量不同。
参数类型不同。
参数的顺序不同。
4. C 命名空间
命名空间提供了一种组织相关类和其他类型的方法。 与文件或组件不同,命名空间是逻辑组合,而不是物理组合。 不在同一文件中的多个类可以共同包含在命名空间中,从而创建逻辑结构。
若要创建命名空间,需要使用 namesapce 关键字
4.1 命名空间的使用
虽然命名空间的使用使类组织得更好,但也引入了类全名很长的问题,使用起来非常不方便。 C 允许简写类的全名,C 声明在使用类之前,需要在文件顶部列出类所在的命名空间,并且命名空间名称需要在 using 关键字前面,以便可以使用相对名称来引用类而不是其绝对名称。 在以下两个示例中,第一个示例使用类的全名,第二个示例使用类的相对名称:
system.int32 a;使用您的全名。
using system;
int32 a;
4.2 命名空间的别名
using 关键字的另一个用途是给类和命名空间赋值别名,如果命名空间名称很长,在 **中已经用过好几次了,但是命名空间的名称包含在 using 指令中,可以给命名空间赋值一个别名,语法如下:
using alias = 命名空间名称;
5. 类方法的使用
5.1 控制台类方法
控制台类表示控制台应用程序的标准输入、输出和错误流。
5.2 数学方法
我是技术创造者