c#里为什么有的使用时函数需要new一个对象而有的不用?为什么不直接调用就好?

 我来答
xuebaotuxi
推荐于2017-11-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4196
采纳率:85%
帮助的人:1117万
展开全部
类的成员函数如果不是静态的(也就是没有static修饰符)在调用的时候是要先new一个该类的对象才能调用它,而如果是静态的就不需要,直接可以用类名调用
追问
嗯。为什么不直接使用静态的呢?非要去new下才可以用?有什么好处吗?
追答
静态的成员属于该类所有对象所共有,是不会变化的,比如定义一个Person类,要输出一个人的身高和体重,这种情况就不能声明这个方法为静态的,因为人与人的身高和体重都是有差异的,再定义一个吃的方法,这时你可以定义成静态的,因为所有的人都是粮食的。
绯弹亚丝娜
2014-08-07 · TA获得超过1095个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:145万
展开全部
要使用某些类的实例方法,就需要先创建类的一个对象(new),然后才能调用这个对象的方法(也就是面向过程语言中的函数)
除了实例方法外,还可以调用类的静态方法(也就是static方法),在调用静态方法时,你不需要创建一个对象,只需要用类名调用就可以了。

例如
class sample
{
static void func1()
{
}
void func2()
{
}
}

调用func1:
sample.func1();
调用func2:
sample s = new sample();
s.func2();

区别呢,在于静态方法不能访问实例方法和属性。

为什么不直接使用静态的呢?非要去new下才可以用?有什么好处吗?
没什么好处,但这就是面向对象,要调用实例方法就要先new一个实例对象。
至于为什么不直接使用静态方法……是因为有地方会需要用到“对象”

至于为什么需要用到“对象”……这就是面向对象语言出现的原因了
面向对象语言很好很强大,很方便很简单,还能封装继承多态……
总之不用纠结于概念,多用一下C#就清楚了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-07
展开全部
new一个?什么意思?函数声明吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式