您的位置:首页 > 编程语言 > C#

C#之方法与函数

2016-01-02 16:20 387 查看
函数与方法之争:

函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,他执行完成后可能会有一些执行结果给我们,要求的数据就叫参数,返回的执行结果就是返回值。

有了函数写代码就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织起来。

面向对象编程,函数写到类里边就叫做方法,函数可以直接调用,对象中的方法一般都有指针this指向它,但是有时一些方法实在不需要写到类里边,所以面向对象的语言有了静态方法static。

其实函数基本上是一个概念,“函数”这个叫法是面向过程的程序语言的叫法,在面向对象的编程语言中,一般叫“方法”,之所以还有些人称“方法”为“函数”主要是受过去叫法的影响,其实在C#中明确使用“函数”这个概念的也只有类的“构造函数”和“析构函数”了,主要是习惯叫法的问题吧,其实完全可以叫“构造方法”和“析构方法”。

MSDN对“构造函数”的解释是:构造函数是在创建给定类型的对象时执行的类方法。

方法:

1.语法:

[code][访问修饰符] static 返回值类型 方法名([参数列表])
{
   //方法体
}


举例说明:

[code]Public static void show()
{
   return;   //有返回值写,无返回值不用写
}


2.返回值问题:

[code]//static静态方法:最简单的方法无参无返回值 
Console.readline();//此方法无参数
String str=cosnole.readline(); //此方法没有参数,此方法有返回值,返回值类型为string
Int num=Convert.toint32("3");//有参数有返回值


3.方法的重载:

重载条件:

参数类型不同,个数不同





构造函数:

1.构造函数的用处:

一天,小杨碰到一道题:要求用C#语言写代码,输出两位同学的姓名,年龄,性别,语文、数学、英语的成绩,小杨看到后很高兴,心想这有什么难,然后顺手便写。写完后突然又不高兴了,他想这是输出两位同学的信息,如果需要输出100多个,难道我还要这样写吗?等了好几天他都没想出更好的办法来,晚上更是睡不好觉,最后带着疑惑他去找小王老师寻求别的方法了,小王老师立刻就写出了一段代码,代码量很少,很简单。小杨疑惑,小王老师解释道:代码写的都挺好,只要改一个地方就可以了:

这是小杨在Program类中写的一段代码:

[code]student zsStu = new student();
            zsStu.Name = "张三";
            zsStu.Age = 18;
            zsStu.Gender = '男';
            zsStu.chinese = 90;
            zsStu.math = 98;
            zsStu.english = 90;
            zsStu.Say();
            zsStu.Score();
            Console.WriteLine("=========");


经过小王老师修改过后是这样的:

先在创建的Student类中定义一个构造函数:

[code]public Student(string name, int age, char gender, int chinese, int math, int english)
        {
            this._name = name;
            this._age = age;
            this._gender = gender;
            this._chinese = chinese;
            this._math = math;
            this._english = english;
        }


然后再Program类中写以下代码:

[code]static void Main(string[] args)
        {
            Student stu = new Student("张三",19,'男',90,90,90);
            stu.Say();
            Console.WriteLine("======");
            Student xlStu = new Student("小兰",'女');
            xlStu.Say();
            Console.ReadKey();
        }


喏,大功告成,小杨嘻嘻哈哈的笑了。

2.构造函数的重载:

在创建类中可以写多个构造函数,括号中可以写0,1,2,3或多个参数,在program类中调用的时候方便。

与方法的重载意思一致。

(1)构造方法用来创建对象,并且可以构造函数中对对象进行初始化:

例如:person per = new person(“张三”,’男’,18);

括号中可以直接赋值,初始化。

(2)是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用。

(3)构造函数可以有参数,new对象的时候传递函数参数即可。

(4)如果不指定构造函数,则类有一个默认的无参构造函数。如果制定了则没有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

(5)重载:有多个参数不同的构造函数。

析构函数:

[code]~person()
        {
            Console.WriteLine("哈哈,我被调用了");
        }


1.不能在结构中定义析构函数,只能对类使用析构函数。

2.一个类只能有一个析构函数。

3.无法继承或重载析构函数。

4.无法调用析构函数。他们是被自动调用的。

5.析构函数既没有修饰符,也没参数。

小结:

关于函数与方法两者的关系暂时搞懂了,他们的用法也了解了,学习这一段收获很多,信心满满,但这只是我对他们的初识,有什么不合理的地方,敬请雅正!小编感激不尽。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: