【发布时间】:2020-03-27 10:21:52
【问题描述】:
我的 MVC 应用程序中有一个创建 pdf 文件的方法(将对象与要写入的数据和路径作为参数)。我在一个单独的类中编写了该方法,并将其设为静态。在我的控制器上的另一个函数中,我这样调用这个方法:
PdfGenerator.GeneratePdfMethod("write this string", "path");
现在如果我将此方法更改为非静态,我必须实例化一个 PdfGenerator 对象,然后在该对象上调用该函数:
PdfGenerator p = new PdfGenerator();
p.GeneratePdfMethod("write this string", "path");
现在我怎样才能避免必须创建这个对象而不使我的方法静态?如果它是可能的和可取的?
【问题讨论】:
-
这是静态方法和实例方法之间的区别,请尝试谷歌搜索“静态与实例方法”。如果你只想用一行代码调用它,你可以写
new PdfGenerator().GeneratePdfMethod("write this string", "path"); -
我知道这一点,但我能不能让它继承另一个类或某个对象的实例?
-
我看不出你不想让它成为静态的原因。您仅在 1 种方法上使用 pdfGenerator 吗?还是您在不同控制器上以多种方法使用它?
-
我只在一种方法上使用它。我只想知道 id 如果它不是静态的,还有另一种调用方式。这个项目来自其他人,我只是添加了这个方法,我看到这个 mvc 应用程序中的大多数其他功能都不是静态的。
-
我更喜欢它是静态的,但我做这个的人出于某种原因不希望在他们的应用程序中使用静态方法
标签: c# .net asp.net-mvc static-methods