指引网

当前位置: 主页 > 编程开发 > .NET >

.net编程之路(三)

来源:网络 作者:佚名 点击: 时间:2017-11-17 03:41
[摘要] 第三章 对象和类型 一、类和结构的区别 类是存储在堆当中的引用类型,如果需要存储在堆栈上可以在类名后加上Struct,例如类CustomerList是存储在堆上的,当定义类CustomerListStruct则存储在堆栈上

        第三章   对象和类型

        一、类和结构的区别

        类是存储在堆当中的引用类型,如果需要存储在堆栈上可以在类名后加上Struct,例如类CustomerList是存储在堆上的,当定义类CustomerListStruct则存储在堆栈上。

        结构是存储在堆栈中的值类型。

        在c#中将java中的成员变量称为字段。

        二、类的成员

        数据成员:字段、常量、事件

        函数成员:方法、属性、构造函数、终结器、索引器

        事件与函数的区别:事件就是一个函数,但是它是一个特别的函数,只有在用户激发了某一事件之后才会促使事件的发生,而函数是操作类中数据的某些定义的功能。

        方法:

        说明1、每个方法都必须要定义自己的访问权限,而不可以使用C++中的块。

        说明2、在定义方法时,参数必需包含参数类型和引用名称,例如:(int xx,string yy)

        说明3、如果方法有返回值,那么必须要与return一起使用,例如:return(xx+yy)

        一个方法可以带有多个return语句,当方法定义为void类型时,可以不要return语句。

        方法的调用:分静态方法和非静态方法调用,有JAVA编程经验的老兄都知道了,就不啰嗦了。

        参数的传递:所有的参数都是通过值来传递的,但是当传递的是值类型的变量时,不管在方法体中对该变量作了什么改变,都不会影响该变量。但是如果变量传递的是引用类型的值,那么这个值会随着方法体中的引用而改变,例如数组等。字符串虽然是引用类但它例外。

        强迫传递引用变量ref的使用:通常是通过值传递变量的,但是如果需要强迫改变传递的值,即转化为引用类型。用法如下:

         public staic void SomeMethod(int x,ref int y)
        {
        //do something here
        Console.WriteLine({0}/n{1},x,y);
        }
        SomeMethod(x,ref y);    //在调用函数时也要加上 ref

        out关键字:

        当函数要返回多个值时,需要通过引用值方式进行返回,前面我们已经知道引用值的传递必须要初始化,是不是每个变量都先初始化再传递,这样显然比较的麻烦,这里我们就可以使用out关键字来简化过程。

        下面是一个例子:

         static int SomeMethod(out int i)
        {
        i= 100;
        }
        public static int main()
        {
        int i;
        SomeMethod(out i);
        Console.WriteLine(i);
        }

------分隔线----------------------------