2015-08-05 3 views
0

У меня есть несколько функций, которые я хотел бы добавить в DLL. Я нашел это руководство по программированию How to: Create and Use C# DLLs (C# Programming Guide). Он очень короткий и выглядит как очень простая вещь, но я заметил, что каждая отдельная функция, добавленная в dll, добавляется в отдельный файл, отдельный класс и функции статичны. Это всегда так? Что делать, если у меня есть несколько перегруженных функций, таких как:Компиляция в DLL

public void WaitForTheKey(object o = null) {} 
public void WaitForTheKey(string message, bool addlines = true, int[] quantity = null) {} 
private void _WaitForTheKey(string, bool, int[]) {} 

Должен ли я поместить их в отдельные файлы, как в учебнике? Благодарю.


EDIT. Если для проектов DLL не требуются отдельные классы и файлы, какова была бы причина, по которой автор учебника следил за этой темой?

Благодаря

ответ

1

Прежде всего вы должны держать вас логику раскола по функциональности. Таким образом, все эти методы должны храниться в одном классе (в большинстве случаев это означает один файл).

Очень просто создать dll. Если вы используете Visual Studio, вы должны выбрать тип проекта Class Library, а затем просто создать его. В результате вы получите файл dll. Или используйте компилятор непосредственно из командной строки, как показано в учебнике.

+0

Какова была бы причина разделения каждой функции в разных классах ?. Из того, что вы сказали, мне не нужно следить за темой в учебнике. Но причина моего вопроса заключается в том, что автор этого учебника поместил каждую отдельную функцию в отдельные классы, в то время как Add и Multiply представляют одну и ту же логику. Я, хотя это то, что нужно сделать, чтобы создать правильный DLL-файл. Ваш ответ не уточняет проблему. – Celdor

+0

Я не был достаточно ясен - вы должны держать эти методы в классе. Нет смысла их разделять. – Krzysztof

1

Вы чрезмерно задумываетесь об этом; учебник - это просто произвольный пример.

Просто структурируйте код таким образом, который имеет смысл, с таким количеством или несколькими классами, как вам нравится. Все, что является публичным в вашей сборке (классы, методы, свойства, поля, события и т. Д.), Может быть доступно потребителем DLL.

Смежные вопросы