Измените метод stati c на метод non stati c in. NET MVC app - PullRequest
1 голос
/ 27 марта 2020

В моем приложении MVC есть метод, который создает файл PDF (принимает объект с данными для записи и путь в качестве параметров). Я написал метод в отдельном классе, и я сделал его stati c. В другой функции моего контроллера я вызываю этот метод следующим образом:

PdfGenerator.GeneratePdfMethod("write this string", "path");

Теперь, если я изменяю этот метод на nonstati c, мне нужно создать экземпляр объекта PdfGenerator и затем вызвать функцию для этого object:

PdfGenerator p = new PdfGenerator();
p.GeneratePdfMethod("write this string", "path");

Теперь, как мне избежать создания этого объекта, не делая мой метод stati c? Если это вообще возможно и желательно?

1 Ответ

2 голосов
/ 27 марта 2020

Теперь, как мне избежать создания этого объекта, не делая мой метод stati c? Если это вообще возможно ...?

Нет. Вам нужно будет создать экземпляр класса, прежде чем вы сможете получить доступ к любому из его членов, включая метод GeneratePdfMethod.

Вы можете сделать это одной строкой:

new PdfGenerator().GeneratePdfMethod("write this string", "path");

Когда элемент static, он принадлежит не конкретному c экземпляру, а самому типу.

Напротив, нестатический c метод принадлежит конкретному c экземпляру, что означает, что вам нужна ссылка на этот конкретный экземпляр, прежде чем вы сможете вызвать метод.

Если GeneratePdfMethod не имеет доступа к данным экземпляра, это должно быть static.

...