我知道如何使用一种方法,这是解决一些任务,但我没有得到什么是他们的好处。每一页都说“这是一段代码... blabla”,但我还没有看到任何简单的解释,说明哪些方法有效,为什么如此重要。如果有人能给我明确的答案,我将非常感激。谢谢!如何使用方法?
如何使用方法?
回答
它们为什么重要?因为它们是代码所在的主要地方。 (其他成员类型,如属性,构造等可以包含代码,但他们往往包含更少的代码。)
这是一个有点奇怪的问题,试图回答,说实话,因为他们是如此重要。有什么方法可供选择?我想你可以把所有的代码放在属性,索引器等等中,但这只是相当于拥有方法,而不是自然的形式。
如果你的问题真的是为什么把大量的步骤分离成单独的方法更好,那主要是关于可读性/可维护性......它更容易理解,重用和维护代码,而不是使用小的,命名方法而不是一个巨大的方法,它试图完成整个程序需要执行的任何事情。
+1(只是想看看999k后会发生什么:-) – 2010-10-04 15:03:37
他们协助将逻辑分解成小的相关的代码块。这很有用,因为它支持代码重用,并且更易于维护和读取代码。
一个好方法是做一件事,那件事是用它的名字来描述的。您可以重复使用方法从多个位置执行相同的逻辑,而无需复制它们。
方法上的访问修饰符允许您控制谁可以执行哪种方法。
大块可重复使用的代码能够完成一项任务。在编程中,方法通常类似于动词。例如,GetDate(), Show(), ValidateUser()
等。
方法是一个类的行为。我们称之为函数区别它们的方法,因为函数不需要封装在对象中(至少在概念上,在c#中,我认为你不可能有一个函数不是方法)。
设计班级时,应该考虑班级在您的应用程序中执行的行为。例如,如果我有一个Client
课程,该课程可能具有Login
,Logout
,Buy Service
等行为;这些行为会告诉你的类将具有什么方法,并将通知你方法的名称。
所以,方法的重要性在于它们是一个类的“做”部分。没有方法,类只是数据的集合(在c#属性和索引器中拥有像特性的方法,但通常他们不会告诉你什么是类,,就是它的在数据方面具有),所以你可以用Dictionary<string, object>
替代你的课程并完成。
好吧,我试着回答:
你可能知道,类通常是用于创建一个代表独立元素的对象。因此,您可以在逻辑上构建您的程序。在现实世界中,每个对象都有某种目的,这意味着它对某件事有好处,它可以做某件事。这意味着它可以执行特定的操作。
该对象的这种操作实际上是方法,即具有特定名称(反映其目的)的comamnds组,可以调用(执行)以执行此操作,并且如果合适的话返回结果。
让我试试更多一个真实世界的例子,也许这会帮助你?
方法描述了一个对象可以做什么,例如我们有一辆汽车。一辆车可以做什么?
究竟,开车!
所以它的一个方法是Drive()。
也许它可以打开它的门,所以有一个Opendoor()方法。
但是现在你不知道打开哪扇门,所以你可以通过给出一个方法 '参数'来指定它。例如,Opendoor方法可以接受一个参数,告诉方法打开哪扇门。
例如Opendoor(“左”)将打开左门,而Opendoor(“右”)将打开右门。所以现在你看到Opendoor已经被用过两次同一个动作,但你只需要编写一次!
总之,
类是语言中的对象或名词。
方法是一个对象可以做的动作,或动词的语言。
希望这对你有所帮助!
ps:你应该去买一本好的起始书,它会很激动地回答这些问题。
Jon Skeet的解释非常好。我想举一个简单的例子。 假设你需要制作咖啡。涉及的步骤是:在容器中取一些牛奶,加热它,加入咖啡和糖,使其变热,倒入杯中,然后准备好咖啡。 每次你的程序需要制作咖啡时,你都可以编写这些步骤,所以它会一次又一次地复制这些步骤并粘贴。相反,您只需将这些步骤放在Method中说成“MakeCoffee()”,并在需要制作咖啡时调用此方法。
还有很多其他的实现和使用,我只是给出了这个简单的例子,有一个基本的理解。为了进一步阅读,我会建议一本好的OOPS书。
它增加了可读性,易于维护,易于调试,结构合理并且避免了代码重复。 我希望它可以帮助:)
- 1. 如何使用NavigationWindow.Navigate方法?
- 2. 如何使用heightForRowAtIndexPath方法?
- 3. 如何使用POST方法
- 4. 如何使用.setVisible()方法?
- 5. 如何使用方法'drawAtPoint:withFont:'
- 6. 如何使用prepareForReuse方法
- 7. 如何使用registerReceiver方法?
- 8. 如何使用onclick方法?
- 9. 如何使用readline方法?
- 10. 如何使用onActivityResult方法
- 11. 如何使用POST方法
- 12. 如何使用类方法
- 13. 如何使用replace()方法?
- 14. 如何使用“is”方法
- 15. 如何使用APEX_WEB_SERVICE.make_rest_request方法?
- 16. 如何使用Enumerable方法
- 17. 如何使用GetHBITMAP方法?
- 18. 如何使用RailsAdmin.authorize_with方法?
- 19. 如何使用方法C#
- 20. 如何使用CanvasBitmap.SaveAsync方法?
- 21. 如何使用DataTable.Merge方法
- 22. 如何使用`authenticate_or_request_with_http_token`方法
- 23. 如何使用$ rootScope.Scope的使用方法?
- 24. 如何使用Post方法使用HttpClient?
- 25. 如何使用反射调用方法
- 26. 如何使用NSInvocation调用类方法?
- 27. 如何使用REST调用方法
- 28. 如何使用IBAction方法调用加速器方法?
- 29. 如何使用Python中的方法引用方法名称?
- 30. GWT:使用JSNI机方法:如何调用方法动态
我认为,如果你寻找编程的基础知识,你会找到这个问题的答案。方法被许多许多书籍广泛描述... – Younes 2010-10-04 07:22:35
为什么不看看http://en.wikipedia.org/wiki/Method_(computer_science)? – sloth 2010-10-04 07:25:53
如果你想知道方法,我不认为这是一个问题在这里会帮助你很多。我会选择一个初学者的C#书,并在阅读时为自己编写代码并进行实验时阅读该书。然后,当你了解该书的基础知识时,无论是对语言的理解还是在此提问,你都会处于更好的位置。即使我们在这里和那里遇到小问题,我认为这对你的情况不会有太大的帮助:) – 2010-10-04 07:27:51