Я не знаю то, чем это называют так, я изо всех сил пытался найти ответ от Google, но у меня есть неопределенная память его с t'old дней.
Я разделил на подклассы (*, видят ниже), приблизительно 8 средств управления платформой, переопределенных некоторые свойства, и добавил некоторую функциональность в каждого. Изменения, которые я внес, идентичны в каждом случае. Если я вношу изменение, я должен пройти каждый класс и применить то же изменение там. Я надеялся, что может быть ключевое слово такой как <IncludeSourcefile "common.vb>, что я могу поместить в каждый класс.
Шанс?
(* примечание) я использую разделенный на подклассы термин, но я не знаю, является ли это корректной терминологией. Я также видел, что это использовало для обратных вызовов. Разделяется правильный термин на подклассы для использования?
Я серьезно сомневаюсь, что собирается работать для вас. Вы не можете использовать файл включения для замятия изменений в производных элементах управления. Вы обычно принимаете изменения в общий базовый класс, который вытекает из элемента управления, например, вытекает отдельные элементы управления из этого базового класса. Но это не собирается работать, если вы настраиваете 8 отдельных классов управления. Скопируйте и-вставку - это ваша лота.
Это может быть сумасшедшая идея, но ...
Если вам нужен код, скопированный на частичные классы перед компиляцией, вы всегда можете запустить файл пакет.
И это, конечно, предполагает, что VB.NET имеет концепцию частичных классов. И нет, я не пробовал это дома ... ;-D
Я помню, как где-то помню, что Microsoft привел к определенному решению дизайна (по крайней мере, в C #) не допустить, включая внешний исходный код таким образом.
было ощущение, что, в том случае, если в том случае, если исходные файлы могут быть полезны в C ++, он также может ввести сложность и уменьшить читаемость.
На языке OO обычно есть хорошие альтернативы, наиболее очевидны состав объектов и делегация.
Вот как я обработал эту ситуацию в прошлом:
class CommonCode
{
public void HandlePaint(Control c, PaintEventArgs a)
{
// Do shared code
}
public void HandleResize(Control c)
{
// Do shared code
}
}
class MyButton : Button
{
private CommonCode m_common=null;
public MyButton()
{
m_common=new CommnCode();
}
protected override OnPaint(PaintEventArgs a)
{
m_common.HandlePaint(this,a);
}
protected override void OnResize(EventArgs e)
{
m_common.HandleResize(this);
}
}
class MyTextbox :Textbox
{
private CommonCode m_common=null;
public MyTextbox()
{
m_common=new CommnCode();
}
protected override OnPaint(PaintEventArgs a)
{
m_common.HandlePaint(this,a);
}
protected override void OnResize(EventArgs e)
{
m_common.HandleResize(this);
}
}
Составьте ваши обычные классы в свою собственную DLL.
Затем установите ссылку на вашу DLL в Visual Studio, щелкнув правой кнопкой мыши на папку «Ссылки» в исследовательском исследовании.
Наконец, добавьте использование операторов к классам вашего проекта для пространства имен в вашей новой DLL.
Вы можете создать проект библиотеки классов (который вывод будет DLL) из Visual Studio:
Новый проект -> Библиотека класса
Вы можете поместить все свой код тогда Вы можете просто добавить ссылку на библиотеку классов в проект, который вы хотите его использовать, из (правой кнопкой мыши ссылки на исследование решения):
Ссылки -> Добавить ссылку -> Проекты -> MyClassLibrary
Способен находить MyCassLibrary на вкладке «Проекты», оба проекта должны быть в одном решении - в противном случае вы можете просто пойти «просматривать» и указать на саму DLL.
Затем в файле .vb необходимо использовать свои классы, вы можете сделать импорт MyClassLibrary:
// assuming the namespace is MyClassLibrary
imports MyClassLibrary
на этом этапе, вы можете просто использовать подклассы и элементы управления. Если вы пойдете MyClassLibrary.
IntelliSense покажет вам все ваши классы.