Объявление переменной COM - C#
Формулировка задачи:
Добрый день,
В чем разница объявления переменных?
Я использую подключенную COM библиотеку.
Спасибо
using SmartCOM4Lib; private StServerClass SmartServer; // вариант 1 private SmartCOM4Lib.StServerClass SmartServer; // вариант 2
Решение задачи: «Объявление переменной COM»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Threading; using System.Windows.Forms; using System.Runtime.InteropServices; using SmartCOM4Lib; namespace TestConnect { public partial class TestForm : Form { private delegate void UpdateErrorText(string text); private int InfoCookie; // Индификатор приказа private Quote LastQuote; // Котировка инструмента private List<Bar> InfoBars; // Список баров для инструмента //private StServerClass SmartServer; // SmartCOM private SmartCOM4Lib.StServerClass SmartServer; private List<Tiker> InfoTikers; // Список всех инструментов private const string smartComParams = "logLevel=5;maxWorkerThreads=3"; private DAFWriters Writers; // Лог // Создан ли SmartCOM private bool IsReady { get { return (SmartServer != null); } } // Установлено ли соединение private bool IsConnected { get { bool bReturn = false; if (IsReady) { try { bReturn = SmartServer.IsConnected(); } catch (Exception) { } } return bReturn; } } public TestForm() { Writers = new DAFWriters(); InitializeComponent(); ToDateTimePicker.Value = DateTime.Now.AddDays(-5); ToDateTimePicker.MaxDate = DateTime.Now; InfoBars = new List<Bar>(); InfoTikers = new List<Tiker>(); //Text += ", Version: " + Info.GetVersion; Writers.WriteLine("Enegy", "log", "{0} Version: {1}", DateTime.Now, Info.GetVersion); foreach (StBarInterval Interval in Enum.GetValues(typeof(StBarInterval))) if (Interval != StBarInterval.StBarInterval_Tick) IntervalComboBox.Items.Add(Interval.ToString()); if (IntervalComboBox.Items.Count > 0) IntervalComboBox.SelectedIndex = 0; } private StBarInterval GetInterval { get { return (IntervalComboBox.SelectedIndex > -1 ? (StBarInterval)Enum.Parse(typeof(StBarInterval), IntervalComboBox.SelectedItem.ToString()) : StBarInterval.StBarInterval_1Min); } } private void CreateButton_Click(object sender, EventArgs e) { Writers.WriteLine("Enegy", "log", "{0} Click: {1}", DateTime.Now, "Create"); ReDrawStatus("Create"); if (!IsReady) // если SmartCOM не создан { try { //SmartServer = new StServerClass(); // Создать и назначить обработчики событий SmartServer = new SmartCOM4Lib.StServerClass(); SmartServer.Connected += new _IStClient_ConnectedEventHandler(SmartServer_Connected); SmartServer.Disconnected += new _IStClient_DisconnectedEventHandler(SmartServer_Disconnected); SmartServer.AddTick += new _IStClient_AddTickEventHandler(SmartServer_AddTick); SmartServer.UpdateBidAsk += new _IStClient_UpdateBidAskEventHandler(SmartServer_UpdateBidAsk); SmartServer.UpdateQuote += new _IStClient_UpdateQuoteEventHandler(SmartServer_UpdateQuote); SmartServer.AddBar += new _IStClient_AddBarEventHandler(SmartServer_AddBar); SmartServer.AddTickHistory += new _IStClient_AddTickHistoryEventHandler(SmartServer_AddTickHistory); SmartServer.AddPortfolio += new _IStClient_AddPortfolioEventHandler(SmartServer_AddPortfolio); SmartServer.UpdateOrder += new _IStClient_UpdateOrderEventHandler(SmartServer_UpdateOrder); SmartServer.UpdatePosition += new _IStClient_UpdatePositionEventHandler(SmartServer_UpdatePosition); SmartServer.SetPortfolio += new _IStClient_SetPortfolioEventHandler(SmartServer_SetPortfolio); SmartServer.AddTrade += new _IStClient_AddTradeEventHandler(SmartServer_AddTrade); SmartServer.AddSymbol += new _IStClient_AddSymbolEventHandler(SmartServer_AddSymbol); SmartServer.SetMyClosePos += new _IStClient_SetMyClosePosEventHandler(SmartServer_SetMyClosePos); SmartServer.SetMyOrder += new _IStClient_SetMyOrderEventHandler(SmartServer_SetMyOrder); SmartServer.SetMyTrade += new _IStClient_SetMyTradeEventHandler(SmartServer_SetMyTrade); SmartServer.OrderSucceeded += new _IStClient_OrderSucceededEventHandler(SmartServer_OrderSucceeded); SmartServer.OrderFailed += new _IStClient_OrderFailedEventHandler(SmartServer_OrderFailed); SmartServer.OrderCancelFailed += new _IStClient_OrderCancelFailedEventHandler(SmartServer_OrderCancelFailed); SmartServer.OrderCancelSucceeded += new _IStClient_OrderCancelSucceededEventHandler(SmartServer_OrderCancelSucceeded); SmartServer.OrderMoveFailed += new _IStClient_OrderMoveFailedEventHandler(SmartServer_OrderMoveFailed); SmartServer.OrderMoveSucceeded += new _IStClient_OrderMoveSucceededEventHandler(SmartServer_OrderMoveSucceeded); Writers.WriteLine("Enegy", "log", "{0} ConfigureClient {1}", DateTime.Now, smartComParams); SmartServer.ConfigureClient(smartComParams); Text = "Test Connect (SmartCOM version: " + SmartServer.GetStClientVersionString() + ")"; CreateButton.Enabled = false; } catch (COMException Error) { ReDrawStatus("Ошибка при создании, " + Error.Message); return; } catch (Exception Error) { ReDrawStatus("Ошибка при создании, " + Error.Message); return; } } if (IsConnected) // если соединение установлено, вручную вызвать событие connected, для начала подписки SmartServer_Connected(); else ReDrawStatus(""); // иначе обновить статус соединения }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д