Я пытаюсь сделать что-то довольно ... уникальное, и, может быть, есть гораздо лучший способ сделать это, но ... Я делаю инверсию системы управления (ish), которая использует методы расширения для включения / выключения компоненты класса, поэтому, прежде чем я углублюсь в подробности и запутаю вас, давайте рассмотрим некоторый код!
using TestComponents.CommunicationProtocols.RS232;
//this brings in the
//ConnectRS232 extension method
namespace TestMeNamespace
{
public class Test //Although this class is defined here, we extend it above
{
public void Start()
{
this.ConnectRS232(1, 9600); //calls the ConnectRS232 extension method
}
}
}
Короче говоря, объявление using расширяет Test в том же файле, который мы определяем.
(наследование тоже будет хорошо) Однако с этим есть некоторые проблемы! Прежде всего, безобразный реквизит «это». BLECH. во-вторых, это грязная, взаимозависимая система.
Вот что я пытаюсь достичь:
- Мне нужен способ легко распространить статические методы на класс (с помощью объявлений все в порядке)
- Я хочу сделать заявления простыми: ConnectRS232 ();
- Я не хочу возиться с частичными классами, если мне не нужно.
- Хорошо бы использовать наследование интерфейса.
Не стесняйтесь задавать мне дополнительные вопросы в комментариях, но, пожалуйста, не оставляйте ответ, если у вас нет ОТВЕТА!
Редактировать: Вместо поднятых вопросов я выполняю некоторую JIT-компиляцию скрипта C # (www.cs-script.com) в моей системе, и эти скрипты будут в основном написаны не программистами, которые были используя действительно «специальный» проприетарный язык для написания сценариев в течение многих лет. Я хочу, чтобы все было просто, как в аду, и целая куча "этих" вызовов выглядит как беспорядок.