c# - 方法参数困境

标签 c#

创建类时我总是停下来。我对建筑学相当中等,所以请多多包涵。这是我的困境。最终在一个类中我不得不问自己,“当我只能从类的属性或私有(private)支持字段中获得我需要的东西时,这个方法是否需要参数?”。

现在对于公共(public)方法,显然您很可能应该有参数,因为有人会使用您的类并使用这些方法,无论它们是在实例类还是静态类中。那场辩论与公共(public)方法无关,因为这对我来说是显而易见的。如果您的类中有一个公共(public)方法,即使假设您可以从该类中的属性或私有(private)字段中获取所需的值之一,而不是要求该方法的参数并使用该参数,您仍然应该需要参数并使用参数,或者至少在可以指定一些参数时不要将它们计入。至少这是我看待公共(public)方法的方式,因为谁知道其他人可能如何使用该方法,他们需要知道需要传递什么,并且他们需要将实际数据传递给方法,因为他们在您的类之外。

例如,当我正在创建和使用私有(private)方法或类似的东西时,就会出现问题。假设我创建了一个自定义控件 (.cs)。它的工作是运行一系列方法,我已经分解了该控件的逻辑并创建一些 HTML 字符串以输出到浏览器。好吧,我创建了一个公共(public)属性,以便使用此控件的任何人都可以为其提供某个对象。那个特定对象是我类(class)中一半的方法用来帮助生成该 HTML 的对象。因为它是一个属性,所以我自定义类中的任何方法都可以使用它。所以它完全绕过了在其中一些方法中创建参数的任何需要,因为我可以从属性中获取它。但后来我到了一个地步,我正在创建大量无参数方法,因为我从支持字段或支持字段和属性的组合中获取对象。或者我可能只是从几个prope那里得到它们,当我能够在这个类中以其他方式获得我需要的东西时?但是然后有人对你说不,那是坏人,你确实偶尔需要参数老兄......至少是参数组合并在你的方法中使用一些支持字段或属性等,但不要总是打折参数即使这些参数可能是传递给它的一些内部信息(字段或属性)。但是话又说回来,如果我要将内部作为参数传递,那么访问和使用这些字段或属性之间的界限是什么,而不是通过方法作为参数,而是直接在方法本身内部。

但这让我很困扰,因为我质疑为什么在我可以在其他地方获取值的情况下我需要方法参数。

有人能解释一下这里的细线并帮助我得出结论,在你的方法或属性中使用大量支持字段而不是你在方法中指定的一些参数之间的界线..即使其中一些参数可能当另一个方法调用它时,仍然从支持字段或属性传递值吗?

我希望这能让您有所了解,但我不是唯一遇到这种困境的人。也许我是唯一一个想到这个 sh** 的人,我认为我不知道。但我个人对 OOP 的主要问题是,有太多该死的方法可以得到你需要的东西(构造函数、属性、支持字段、方法)。

最佳答案

少喝咖啡,少说话 ;-)

总结

什么时候在方法中使用参数?

简答

根据 Don't Repeat Yourself 原则,当所需信息在对象中可用时

无参数方法很好,没有必要告诉对象它已经知道的事情

关于c# - 方法参数困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122980/

相关文章:

c# - 遍历 C# MVC 中的列表并访问属性

c# - PointToScreen 多个显示器

c# - 为 Controller Action 参数创建过滤属性抗XSS攻击

c# - 来自另一个进程的 Marshal 位图

c# - 在 3D 地形上,给定一条 3D 线,找到线和地形之间的交点

c# - 为什么 itween 动画似乎比声明花费更多时间并防止延迟 Destroy()

c# - 如果遇到不止一次,使自动映射器缓存对象

c# - 运行 Process.Start 时无法打开 : c:\users\. ..\temp\package.cab

c# - 何时期望 IEnumerable 以及何时期望来自 Linq 查询的 IQueryable

c# - 确定文本代码类型并转换为默认值