【发布时间】:2013-08-27 20:46:59
【问题描述】:
我在创建课程时总是停下来。我对建筑学相当中等,所以请耐心等待。这是我的困境。我最终在课堂上遇到了一个问题,我不得不问自己:“当我可以从类的属性或私有支持字段中获取我需要的东西时,这个方法是否需要参数?”。
现在对于公共方法,显然您很可能应该有参数,因为有人将使用您的类并使用这些方法,无论它们是在实例类还是静态类中。那场辩论与公共方法无关,因为这对我来说是显而易见的。如果您的类中有一个公共方法,即使假设您可以从该类中的属性或私有字段中获取所需的值之一,而不是需要该方法的参数并使用该参数,您应该仍然需要参数并使用参数,或者至少在您可以指定一些参数时不要将它们计算在内。至少我是这样看待公共方法的,因为谁知道其他人可能如何使用该方法,他们需要知道需要传递什么,并且他们需要将实际数据传递给该方法,因为它们在您的类之外。
例如,当我创建和使用私有方法或类似的东西时,问题就出现了。假设我创建了一个自定义控件 (.cs)。它的工作是运行一堆方法,我已经分解了这个控件的逻辑,并创建了一些 HTML 字符串输出到浏览器。好吧,我创建了一个公共属性,以便使用此控件的任何人都可以为其提供特定对象。那个特定的对象是我班级中一半的方法用来帮助生成 HTML 的。因为它是一个属性,所以我的自定义类中的任何方法都可以使用它。所以它完全绕过了在其中一些方法中创建参数的任何需要,因为我可以从属性中获取它。但是后来我到了创建大量无参数方法的地步,因为我从支持字段或支持字段和属性的组合中获取对象。或者当我能够在这个类中以其他方式获得我需要的东西时,我可能只是从一些建议中获得它们?但是后来有人对您说不,那是坏人,您确实偶尔需要参数...至少是参数的组合并在您的方法中使用一些支持字段或属性等,但不要总是打折参数即使这些参数可能是传递给它的一些内部信息(字段或属性)。但话又说回来,如果我要将内部作为参数传递,那么不通过方法作为参数而是直接在方法本身内部访问和使用这些字段或属性之间的细微差别。
但这让我很困扰,因为我质疑为什么在可以在其他地方获取值的情况下需要方法参数。
有人可以在这里解释一下细线并帮助我就在您的方法或属性中使用大量支持字段而不是您在方法中指定的某些参数之间的界线得出结论......即使其中一些参数可能当另一个方法调用它时,仍然从支持字段或属性传递一个值吗?
我希望这有任何意义,但我不能是唯一一个遇到这种困境的人。也许我是唯一一个想到这个 sh** 的人,我认为我不知道。但我个人对 OOP 的主要问题是,有太多该死的方法可以得到你需要的东西(构造函数、属性、支持字段、方法)。
【问题讨论】:
标签: c#