当前位置:编程学习 > C#/ASP.NET >>

方法和函数的区别?

如题 菜鸟请教 请师兄师姐帮忙! 最好举个例子 --------------------编程问答-------------------- 这两个名词不严格区分,一般地函数只有返回值的方法,方法是OO中的概念。 --------------------编程问答-------------------- 意思一样的。 --------------------编程问答--------------------
引用 1 楼  的回复:
这两个名词不严格区分,一般地函数只有返回值的方法,方法是OO中的概念。

函数是有返回值的方法  方法和函数都是有参数的?什么是OO? --------------------编程问答-------------------- OO就是面向对象的意思。

在OO中,我们说一个类有方法和字段,也可以说它有成员函数和成员变量,函数和变量是程序层面的术语,而方法和字段是设计层面的术语。 --------------------编程问答-------------------- 这就好比从动物学的角度看,动物有公母之分。

比如母狗、母狮、母猴。但是在人类社会中,我们用了男、女,比如女人,而不是母人。

其实公母和男女是一个意思。在不同场合叫法不同而已。因为有时候,我们研究人的时候会忽略它的人的属性,考虑它的动物属性。

典型的,我们说雌性激素,我们不说女性激素。 --------------------编程问答-------------------- 这两个是一样的。
以前c语言中我们一直称之为函数,大概因为面向过程编程中它是很独立的部分,没有严格意义的附属于谁。
现在在.net里面我们称之为方法,因为它是作为一个抽像的对象的本身的组成部分而存在的,这时候把其称为这个对象的方法比较贴切。 --------------------编程问答-------------------- 在类型语言中(如:C#,Java)叫方法,在弱类型语言中(如:javascript,vbscript)叫函数,没有严格区分 --------------------编程问答-------------------- 一个东西,用对象调用的叫方法,直接调函数名的叫函数 --------------------编程问答-------------------- 是一个意思,上面解释了。 --------------------编程问答-------------------- 不用太纠结于这两个概念。只用用方法或函数代码实现了你要的逻辑就OK了哈哈 --------------------编程问答-------------------- c语言等语言里叫函数,面向对象编程,函数写到类里边就叫做方法,函数可以直接调用,对象中的方法一般都有指针this指向它,但是有时一些方法实在不需要写到类里边,所以面向对象的语言有了静态方法,不过这个概念没必要纠结,用的多了自然就明白啦 --------------------编程问答-------------------- 函数Function, 过程Procedure, 方法Method,你可以简单把他们当成同一个概念:都是由若干语句组成的一个可执行代码体。 --------------------编程问答-------------------- 在数据库中Procedure(存储过程)和Function(函数)是不同的。Function必须要有返回值。 --------------------编程问答-------------------- 对Method的翻译不同而已 --------------------编程问答--------------------
引用 1 楼  的回复:
这两个名词不严格区分,一般地函数只有返回值的方法,方法是OO中的概念。

没什吗区别好象。 --------------------编程问答-------------------- C#,Java叫方法,如:javascript,vbscrip叫函数 --------------------编程问答-------------------- 不用纠结于这两个概念,基本上差不多。
C#,java中叫方法
C语言,C++,javascript中叫函数 --------------------编程问答-------------------- 一样滴!! --------------------编程问答-------------------- 其实基本上是一个概念,“函数”这个叫法是面向过程的程序语言的叫法,在面向对象的编程语言中,一般叫“方法”,之所以还有些人称“方法”为“函数”主要是受过去叫法的影响,其实在C#中明确使用“函数”这个概念的也只有类的“构造函数”和“析构函数”了,主要是习惯叫法的问题吧,其实完全可以叫“构造方法”和“析构方法”。
MSDN对“构造函数”的解释是:构造函数是在创建给定类型的对象时执行的类方法 --------------------编程问答--------------------
引用 14 楼  的回复:
对Method的翻译不同而已


扯大了。
函数:Function(面向过程语言教程的英文原版,是否有一个把Function翻译为Method的?)
方法:Method(只有不地道的面向对象语言教程才会把Method叫做Function) --------------------编程问答-------------------- 一样的。不要纠结这个。 --------------------编程问答-------------------- 没严格区分 至少我觉得都是一个东西。。 --------------------编程问答-------------------- 一般是调用.NET库的一般叫函数  自己写出来的一般叫方法  其实两个没什么区别  --------------------编程问答-------------------- 没什么区别,只是对于不同的平台叫法不一样而已吧。 --------------------编程问答--------------------
引用 17 楼  的回复:
不用纠结于这两个概念,基本上差不多。
C#,java中叫方法
C语言,C++,javascript中叫函数

都是代码。。。而已。。。 --------------------编程问答-------------------- 方法就是函数----谁TM敢否认,呵呵 --------------------编程问答-------------------- 意思一样的,可能就是方法偏重于类,也就是面向对象设计的,注重每个函数的功能所以叫方法;而函数偏重于面向过程,有可能是功能描述也有能不是,两者都有是看编程者自己怎么看的 --------------------编程问答-------------------- 函数应该就是方法,
方法和属性是相对于类来说的(面向对象),
java和C#这种面向对象的语言,一切都是类,
是类,就有方法和属性,
例如人也是一个类(人类),人类都有说话的功能(相当于方法),人类都有年龄和性别(相当于属性),
C#代码:
//下面定义了一个类:people(人类)
class people
{
    //下面两个是people的属性
    public int age;  //年龄
    public bool sex; //性别
    
    //下面是people的方法
    public String speak () //说话
    {
        //........       
        return "";
    }
} --------------------编程问答-------------------- 反正在我的概念里都一样,方法就是不需要返回值(或者说返回类型是void)的函数。 --------------------编程问答-------------------- 方法和函数都是一样的,只不过叫法不同而已,在java那里我们叫方法,不叫函数,在C#里就叫函数,属性其实也是函数,只不过C#帮我们封装成了属性,在java中没有属性这说法,java是通过两个方法对一个变量进行读和写,比如
int n = 0;
public void setN(int m)
{
   n = m;
}
public int getN()
{
   return n;
}
这两个方法就相当与C#里的读/写属性了

--------------------编程问答-------------------- 不要纠结这个了,方法可以通过函数实现的,函数也可实现某一方法。两者没多大区别! --------------------编程问答-------------------- 这个问题你不用知道。

你知道太阳怎么来的吗?

管他怎么来的,只要暖和就行了。可以晒干衣服就行了!

意思就是会用方法,函数就OK! --------------------编程问答-------------------- 归根结底,都是二进制数据。 --------------------编程问答-------------------- 其实是面向 “类”而言,函数在函数所在的类里面调用,该函数就叫做函数;如果跨类调用,且该函数不是全局函数,那么该函数就是该类的方法。 --------------------编程问答-------------------- 某些2B面试官就喜欢拿这些2B问题难为人。楼主不必鸟这种人。 --------------------编程问答-------------------- 记得delphi中Procedure没有返回值,Function有返回值 --------------------编程问答-------------------- 方法就是你说的函数。 --------------------编程问答-------------------- 差不多,C#,java中叫方法,C,javascript中叫函数,意思是一样的,就是叫法不一样 --------------------编程问答-------------------- 有class概念的叫方法,没有class概念叫函数。 --------------------编程问答-------------------- 一个意思吧~,只是叫法不一样 --------------------编程问答-------------------- 这两个是一回事,如果非要分清的话可以理解为,如果一个类的方法拷贝到任意一个类里面也不会影响其运行和结果的话就可以认为它是一个函数,如果是OO里面的话这样的方法都应该统一放到一个叫Tools的类里面,成为这个类的方法。有点绕嘴 呵呵 --------------------编程问答-------------------- 还是有区别的
在结构语言中只有函数
在面向对象(OO)中类对象的某个函数称为方法,方法依附于对象,没有独立于对象的方法
与有没返回值无关,VB中无返回值的称为过程,有返回值的称为方法,C中无论有无返回值均称方法,C也没有过程的概念 --------------------编程问答-------------------- 在oo中当作同义词 --------------------编程问答-------------------- 方法是面向对象里的概念,函数是C这种流程化编程里的概念,可以认为两者是同义词 --------------------编程问答-------------------- 不同语言不同叫法
c#中没有函数这个叫法 --------------------编程问答-------------------- --------------------编程问答-------------------- 函数:通常是面向过程中如C开发中叫法
方法:通常是面向对象中如java/C#等开发中叫法

无本质上区别~ --------------------编程问答-------------------- 两个都一样,都是构成类的 --------------------编程问答--------------------
引用 16 楼  的回复:
C#,Java叫方法,如:javascript,vbscrip叫函数

都是面向对象惹的祸!! --------------------编程问答-------------------- 我的理解是:
在C#中,方法method是类暴露给外部调用的,函数function是供类内部互相之间调用

更直观一些,public的都是方法,private都是函数。

这是一种思路而已 --------------------编程问答-------------------- 不是很直观。 --------------------编程问答-------------------- C#中所有成员分为数据成员和函数成员。

数据成员包括字段,常量,和事件。其余均为函数成员。

函数和方法在C#中是俩个不同的概念,函数成员提供了操作类中数据的某些功能,从组成上来说,函数包括方法,属性,构造函数,终结器(finalizer),运算符以及索引器。
方法是与某个类相关的函数,方法的定义奥扩任意方法修饰符号,与函数成员一样,函数成员默认为实例成员,依靠static修饰符定义为静态方法。

更详细请参考《C#高级编程第七版》70-71页 --------------------编程问答-------------------- 所以个人理解,函数的范围更大一些,有些泛指的味道,而方法就狭小一点,就是具体指任意修饰符,返回类型,然后依次是方法名,方法体的那种具体的。
补充52楼 --------------------编程问答-------------------- 方法=成员函数=thiscall
我的理解 --------------------编程问答--------------------
引用 5 楼  的回复:
这就好比从动物学的角度看,动物有公母之分。

比如母狗、母狮、母猴。但是在人类社会中,我们用了男、女,比如女人,而不是母人。

其实公母和男女是一个意思。在不同场合叫法不同而已。因为有时候,我们研究人的时候会忽略它的人的属性,考虑它的动物属性。

典型的,我们说雌性激素,我们不说女性激素。
--------------------编程问答-------------------- c#中函数旧好像只有构造函数析构函数其他的好像没怎么听说 --------------------编程问答-------------------- 其实是一样的! --------------------编程问答-------------------- 其实是一样的! --------------------编程问答-------------------- 一样的,我觉得没用任何区别
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,