请问,一个类中如果只有一个方法(没有字段或者属性),跟在类的外部使用静态方法有什么区别?

boot_black 2018-05-10 05:23:00
最近开始看C#,对其中很多概念不是很理解。
可能与我之前学习过C可能有关系吧。
请问,一个类中如果只有一个方法(没有字段或者属性),跟在类的外部使用静态方法有什么区别?这样写有什么好处?
恳请大神指教,不胜感激。
...全文
1541 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2018-05-11
  • 打赏
  • 举报
回复
类的外部使用静态方法 -》这个表述就比较拗口了, 方法在类内部定义。外部的使用就通过类名.静态方法名调用即可。类似:

Class1.StaticMethod();
非静态方法类似:

Class1 cl = new Class1();
cl.Method();
维秀斯丢丢 2018-05-11
  • 打赏
  • 举报
回复
很简单啦,静态方法就是你不需要实例化,省了很多事啊。哈哈
卖水果的net 2018-05-11
  • 打赏
  • 举报
回复
只有一个方法,也要 定义一个实例,再引用。 PS:与方法的个数,没什么关系。
吹风的兔子 2018-05-10
  • 打赏
  • 举报
回复
楼主想问的是: 实例方法 和 静态方法 有啥 区别? —— 这个问题 也曾困扰年轻时候的我。 明白无误的告诉楼主: 所有的 实例方法 都是 静态方法 —— 底层内核根本就没有 “实例方法” 这个概念。 为什么 .Net 3.5 支持 扩展方法? public static void Method(this object obj, string arg); —— 你可以反向理解为:所有的实例方法 都是编译成 “扩展方法”,“扩展方法” 是 static 的 —— 所以,所有的 “实例方法” 最终都是 静态方法。 —————————————————————— 当然,我这种理解方式 有点极端。 建议如下: > 实例方法 可以实现 继承、多态 —— 可以通过继承改写 替换之前的逻辑 (架构为了适应后期变化,可能会用 实例方法)。 > 静态方法,写完之后,逻辑就无法替换。 > 所以:只要不是 架构层的东西,能用 静态方法就用静态方法。
boot_black 2018-05-10
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
只有方法,又不依赖私有字段或属性,那可以直接声明为static


感谢大神指教
例如,如下是 《入门经典》 中的一段代码
我很好奇为什么这样写
正怒月神 2018-05-10
  • 打赏
  • 举报
回复
区别在于,静态方法的内存常驻。 非静态的有机会释放。
qq_34292420 2018-05-10
  • 打赏
  • 举报
回复
啥意思啊,你说的扩展方法吧
  • 打赏
  • 举报
回复
只有方法,又不依赖私有字段或属性,那可以直接声明为static

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧