教程集 www.jiaochengji.com
教程集 >  脚本编程  >  C语言  >  正文 C# 类和对象 方法 语言规范

C# 类和对象 方法 语言规范

发布时间:2018-10-24   编辑:jiaochengji.com
教程集为您提供C# 类和对象 方法 语言规范等资源,欢迎您收藏本站,我们将为您提供最新的C# 类和对象 方法 语言规范资源

方法 (method) 是一种成员,用于实现可以由对象或类执行的计算或操作。

静态方法 (static method) 通过类来访问。

实例方法 (instance method) 通过类的实例来访问。

方法具有一个参数 (parameter) 列表(可以为空),表示传递给该方法的值或变量引用;

方法还具有一个返回类型 (return type),指定该方法计算和返回的值的类型。

如果方法不返回值,则其返回类型为 void。

与类型一样,方法也可以有一组类型参数,当调用方法时必须为类型参数指定类型实参。

与类型不同的是,类型实参经常可以从方法调用的实参推断出,而无需显式指定。

方法的签名 (signature) 在声明该方法的类中必须唯一。

方法的签名由方法的名称、类型参数的数目以及该方法的参数的数目、修饰符和类型组成。方法的签名不包含返回类型。

 


参数用于向方法传递值或变量引用。

方法的参数从调用该方法时指定的实参 (argument) 获取它们的实际值。

有四类参数:值参数、引用参数、输出参数和参数数组。

值参数 (value parameter) 用于传递输入参数。

一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。

对值参数的修改不影响为该形参传递的实参。

值参数可以是可选的,通过指定默认值可以省略对应的实参。

引用参数 (reference parameter) 用于传递输入和输出参数。

为引用参数传递的实参必须是变量,并且在方法执行期间,引用参数与实参变量表示同一存储位置。

引用参数使用 ref 修饰符声明。

下面的示例演示 ref 参数的用法。

<blockquote>

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"
    }
}

</blockquote>

输出参数 (output parameter) 用于传递输出参数。

对于输出参数来说,调用方提供的实参的初始值并不重要。

除此之外,输出参数与引用参数类似。

输出参数是用 out 修饰符声明的。

下面的示例演示 out 参数的用法。

<blockquote>

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"
    }
}

</blockquote>

参数数组 (parameter array) 允许向方法传递可变数量的实参。

参数数组使用 params 修饰符声明。

只有方法的最后一个参数才可以是参数数组,并且参数数组的类型必须是一维数组类型。

system.console 类的 write 和 writeline 方法就是参数数组用法的很好示例。它们的声明如下。

<blockquote>public class console
{
    public static void write(string fmt, params object[] args) {...}
    public static void writeline(string fmt, params object[] args) {...}
</blockquote>

}在使用参数数组的方法中,参数数组的行为完全就像常规的数组类型参数。

但是,在具有参数数组的方法的调用中,既可以传递参数数组类型的单个实参,也可以传递参数数组的元素类型的任意数目的实参。

在后一种情况下,将自动创建一个数组实例,并使用给定的实参对它进行初始化。示例:

<blockquote>

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);

</blockquote>

您可能感兴趣的文章:
asp.net C# 类和对象 方法体和局部变量规范
python c 和java的区别有哪些
php源码是什么
Go语言的主要特性和发展影响
.net的4个基本概念
python是一种什么类型的编程语言
go语言入门基础学习系列教程:第四节Go语言的核心特性
go语言有哪些优势?Go语言的核心特性有哪些
Go 语言的核心优势
python是用c写的吗

[关闭]
~ ~