最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C# 类和对象 方法 语言规范
时间:2022-06-25 05:00:57 编辑:袖梨 来源:一聚教程网
方法 (method) 是一种成员,用于实现可以由对象或类执行的计算或操作。
静态方法 (static method) 通过类来访问。
实例方法 (instance method) 通过类的实例来访问。
方法具有一个参数 (parameter) 列表(可以为空),表示传递给该方法的值或变量引用;
方法还具有一个返回类型 (return type),指定该方法计算和返回的值的类型。
如果方法不返回值,则其返回类型为 void。
与类型一样,方法也可以有一组类型参数,当调用方法时必须为类型参数指定类型实参。
与类型不同的是,类型实参经常可以从方法调用的实参推断出,而无需显式指定。
方法的签名 (signature) 在声明该方法的类中必须唯一。
方法的签名由方法的名称、类型参数的数目以及该方法的参数的数目、修饰符和类型组成。方法的签名不包含返回类型。
参数用于向方法传递值或变量引用。
方法的参数从调用该方法时指定的实参 (argument) 获取它们的实际值。
有四类参数:值参数、引用参数、输出参数和参数数组。
值参数 (value parameter) 用于传递输入参数。
一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。
对值参数的修改不影响为该形参传递的实参。
值参数可以是可选的,通过指定默认值可以省略对应的实参。
引用参数 (reference parameter) 用于传递输入和输出参数。
为引用参数传递的实参必须是变量,并且在方法执行期间,引用参数与实参变量表示同一存储位置。
引用参数使用 ref 修饰符声明。
下面的示例演示 ref 参数的用法。
using system;
class test
{
static void swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}static void main()
{
int i = 1, j = 2;
swap(ref i, ref j);
console.writeline("{0} {1}", i, j); // outputs "2 1"
}
}
输出参数 (output parameter) 用于传递输出参数。
对于输出参数来说,调用方提供的实参的初始值并不重要。
除此之外,输出参数与引用参数类似。
输出参数是用 out 修饰符声明的。
下面的示例演示 out 参数的用法。
using system;
class test
{
static void divide(int x, int y, out int result, out int remainder)
{
result = x / y;
remainder = x % y;
}static void main()
{
int res, rem;
divide(10, 3, out res, out rem);
console.writeline("{0} {1}", res, rem); // outputs "3 1"
}
}
参数数组 (parameter array) 允许向方法传递可变数量的实参。
参数数组使用 params 修饰符声明。
只有方法的最后一个参数才可以是参数数组,并且参数数组的类型必须是一维数组类型。
system.console 类的 write 和 writeline 方法就是参数数组用法的很好示例。它们的声明如下。
public class console
{
public static void write(string fmt, params object[] args) {...}
public static void writeline(string fmt, params object[] args) {...}
}在使用参数数组的方法中,参数数组的行为完全就像常规的数组类型参数。
但是,在具有参数数组的方法的调用中,既可以传递参数数组类型的单个实参,也可以传递参数数组的元素类型的任意数目的实参。
在后一种情况下,将自动创建一个数组实例,并使用给定的实参对它进行初始化。示例:
console.writeline("x={0} y={1} z={2}", x, y, z);等价于以下语句:
string s = "x={0} y={1} z={2}";
object[] args = new object[3];
args[0] = x;
args[1] = y;
args[2] = z;
console.writeline(s, args);
相关文章
- 《燕云十六声》红尘无眼完成图文攻略 12-25
- 《燕云十六声》阴阳如影完成图文攻略 12-25
- 《燕云十六声》悬檐之下四架椽屋图文攻略 12-25
- 《燕云十六声》2024最新公测时间介绍 12-25
- 《燕云十六声》有没有藏宝阁 12-25
- 《燕云十六声》制作公司介绍 12-25