Совет Стива Макконелла, из Код завершен : используйте многомерную таблицу. Каждая переменная служит индексом для таблицы, а оператор if превращается в поиск в таблице. Например, если (размер == 3 & amp; вес> 70) приводит к решению о записи в таблице [размер] [весовая группа]
Неправда.
Насколько я понимаю, ваш вопрос касается вызова COM или использования класса .NET .
Согласно на этой странице вы можете предоставлять методы, свойства и поля управляемых классов потребителям COM.
Все управляемые типы, методы, свойства, поля и события, которым вы хотите подвергнуть COM должен быть публичным. Типы должны иметь общедоступный конструктор по умолчанию, который является единственным конструктором, который можно вызывать через COM.
У вас работает ?:
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("A1209192-723B-4325-8599-FB39D9F202D9")]
public interface ITicklee
{
[DispId(1)]
void TickleMe();
[DispId(2)]
int Count{get;}
}
[Guid("45715A3B-CA95-49f7-9889-A0022B31EF8A")]
public class Elmo : ITicklee
{
// default ctor
public Elmo () {}
private int _tickleCount;
public int Count
{
get
{
return _tickleCount;
}
}
public void TickleMe()
{
_tickleCount++;
}
}
Тестовый клиент VBScript может выглядеть так:
Sub TestTickle()
WScript.echo("")
WScript.echo("Instantiating an Elmo ...")
dim elmo
set elmo = WScript.CreateObject("Ionic.Tests.Com.Elmo")
WScript.echo("Tickling...")
For i = 1 to 5
elmo.TickleMe()
Next
WScript.echo("")
c = elmo.Count
WScript.echo("Tickle Count = " & c)
' one for the road'
elmo.TickleMe()
End Sub
call TestTickle() ' ahem '
Если вы имеете в виду, что вы не можете предоставить свойства объекта com приложению .NET с помощью взаимодействия, а объект COM был создан в VB, то вы правы. VB использует свойство LET для собственных типов и свойство SET для типов объектов. Если вы попытаетесь установить свойство вашего COM-объекта из вашего .NET-приложения, оно попытается использовать SET. Если базовое свойство является собственным типом VB, это не удается.
Насколько я знаю, единственное решение, кроме использования методов, а не свойств, - это ручное управление IDL.