Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Micro
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 438
1

Конвертация класса из VB .NET в C#

17.12.2012, 00:28. Просмотров 958. Ответов 4
Метки нет (Все метки)

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Imports System.Net.Sockets
 
Public Class Class_client
    Public Delegate Sub StatusInvoker(ByVal t As String) ' делегат для синхронизации при выводе сообщений
 
    Dim client As TcpClient ' Текущий TcpClient связывающий клиента и сервер
    Dim stream As NetworkStream ' Поток данных связывающий клиента и сервер
    Dim flag As Byte ' Пока не используется. Нужен для индификации сервером "правильного" клиента
 
    Dim connection As Boolean = False ' Состояние подключения
 
    Public Event OnRead(ByVal _data As String) ' Событие, при получении данных от сервера
    Public Event Disconnected(ByVal _reson As String)  ' Событие, при отключении от сервера
    Public Event messege(ByVal text As String)  ' Событие, при необходимости передать сообщение из класса
    Dim s As Object
 
    Public Function Connect(ByVal server As String, ByVal port As Integer, ByVal _Flag As Byte) As Boolean ' Функция подключения клиента к серверу. Вернет True в случае удачи и False при ошибке.
        If connection = False Then ' Проверка не подключены ли мы уже?
            Try
                Me.client = New TcpClient(server, port)
                Me.stream = client.GetStream()
                Me.flag = _Flag
                Dim client_Thread As Threading.Thread = New Threading.Thread(AddressOf Me.doListen)
                client_Thread.Start() ' Запуск отдельного потока на прослушивание данных с сервера.
                connection = True ' Состояние=Подключен
                Return True
            Catch ex As Exception
                msg(ex.Message) ' Сообщаем об ошибке
                Return False
            End Try
        Else
            Return False ' Если уже подключены, тогда новое подключение не удалось
        End If
    End Function
 
    Public Sub Disconnect(Optional ByVal s As String = "") ' Процедура отключения от сервера. Возможно указать коментарий.
        If connection Then
            connection = False ' Состояние=Отключен
            stream.Close()
            client.Close()
            If s = "" Then
                RaiseEvent Disconnected("Отключен") ' Вызываем событие отключения с коментарием "по умолчанию"
            Else
                RaiseEvent Disconnected(s) ' Вызываем событие отключения с коментарием указанным при вызове текущей процедуры
            End If
 
        End If
    End Sub
 
    Public Function Send(ByVal data As String) As Boolean ' Функция отправки сообщения серверу. Вернет True, если посылка удалась или False в обратном случаее
        data = encryptString(data)
        If connection Then
            Try
                Dim databyte() As Byte = System.Text.Encoding.UTF8.GetBytes(data) ' Создаем массив байтов для отправки из Data
                stream.Write(databyte, 0, databyte.Length) ' Отправляем наш массив байт.
                stream.Flush() ' честно не знаю, что это делает. Работает и с этим и без, но в большинстве примеров есть, поэтому оставил.
                Return True ' Говорим, что посылка удалась
            Catch ex As Exception
                msg(ex.Message) ' Сообщаем об ошибке
                Disconnect("Проблема при отправке.") ' Отключаемся
                Return False
            End Try
        Else
            Return False ' Если не подключены, то отправка не удалась.
        End If
    End Function
 
 
    Public Sub test_send(ByVal a As String)
        ' client.Client.Send
    End Sub
 
    Private Sub doListen() ' Процедура прослушки сообщений от сервера
 
        Dim bytes(5242880) As Byte ' 1мб буфер, чтобы данные не дробились. 1048576
        Dim data As String
        Dim i As Int32
 
        Try
            i = stream.Read(bytes, 0, bytes.Length) ' Ждем новых данных от сервера. При получении заносим данные в буфер bytes и длину данных в i
            While (i <> 0) ' Цикл бесконечный, пока длина считанных данных не окажется=0, что ознает, что соединение с сервером прекращенно.
                data = System.Text.Encoding.UTF8.GetString(bytes, 0, i) ' Переводим байты в текст
                'MsgBox("Encrypted:" + data)
                'data = decryptString(data)
                RaiseEvent OnRead(data) ' Вызываем событие о получении новых данных
 
                i = stream.Read(bytes, 0, bytes.Length) ' Ждем новых данных от сервера. При получении заносим данные в буфер bytes и длину данных в i
            End While
            Disconnect() ' Так как вышли из цикла, то сервер закрыло соединение. Следовательно отключаемся.
        Catch ex As Exception
            Disconnect("Do listen:" + ex.Message) ' Ошибка, значит отключаемся, указав причину.
        End Try
 
    End Sub
 
 
 
    Public Sub msg(ByVal t As String) ' Процедура отправки сообщения
        Try
            RaiseEvent messege(t)  ' Вызываем событие о новом сообщении
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
End Class
Что вышло

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Threading;
 
namespace TR
{
    class TRClient
    {
        TcpClient client;
        NetworkStream stream;
        Byte flag;
        bool connected = false;
        public delegate void OnRead(string _data); // Событие, при получении данных от сервера
        public delegate void Disconnected(string _reason);  // Событие, при отключении от сервера
        public delegate void message(string _text);  // Событие, при необходимости передать сообщение из класса
        public OnRead OnReadEvent;
        public Disconnected DisconnectedEvent;
        public message messageEvent;
        Object s;
 
        public bool Connect(string server, int port, byte _Flag)
        {
            if (connected == false) {
                try {
                    this.client = new TcpClient(server, port);
                    this.stream = client.GetStream();
                    this.flag = _Flag;
                    Thread client_Thread = new Thread(this.doListen);
                    client_Thread.Start();
                    connected = true;
                    return true;
                } catch (Exception ex) {
                    msg(ex.Message);
                    return false;
                }
            } else {
                return false;
            }
        }
 
        public void Disconnect(string s = "")
        {
            if (connected)
            {
                connected = false;
                stream.Close();
                client.Close();
                if (s == "")
                {
                    if (DisconnectedEvent != null)
                    {
                        DisconnectedEvent("Отключен");
                    }
                }
                else
                {
                    if (DisconnectedEvent != null)
                    {
                        DisconnectedEvent(s);
                    }
                }
            }
        }
 
 
        public bool Send(string data)
        {
            if (connected) {
                try {
                    byte[] databyte = System.Text.Encoding.UTF8.GetBytes(data);
                    stream.Write(databyte, 0, databyte.Length);
                    stream.Flush();
                    return true;
                } catch (Exception ex) {
                    msg(ex.Message);
                    Disconnect("Проблема при отправке.");
                    return false;
                }
            } else {
                return false;
            }
        }
 
 
 
        private void doListen()
        {
            byte[] bytes = new byte[5242880];
            string data;
            Int32 i;
            try {
                i = stream.Read(bytes, 0, bytes.Length);
                while ((i != 0)) {
                    data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
                    if (OnReadEvent != null) {
                        OnReadEvent(data);
                    }
                    i = stream.Read(bytes, 0, bytes.Length);
                }
                Disconnect();
            } catch (Exception ex) {
                Disconnect("Do listen:" + ex.Message);
            }
        }
 
            public void msg(string t)
            {
                try {
                    if (messageEvent != null) {
                        messageEvent(t);
                    }
                } catch {
                   // Message(ex.Message);
                }
            }
 
 
    }
}

Не работает когда пытаюсь

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        private void Auth_Load(object sender, EventArgs e)
        {
            CLIENT = new TRClient();
            if (CLIENT.Connect("remotehost", 11111, 0))
            {
                
            }
            CLIENT.OnReadEvent += OnRead;
            CLIENT.DisconnectedEvent += Disconnected;
        }
 
        public void Disconnected(string _reason)
        {
            MessageBox.Show(_reason);
        }
 
 
        public void OnRead(string s)
        {
 
            string[] data = s.Split(';');
 
            for (int i=0; i<s.Length;i++)
            {
                listBox1.Items.Add(s[i]);
 
            }
        }

Вылетает на listBox1.Items.Add(s[i]); событие Disconnect с текстом
Конвертация класса из VB .NET в C#
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 00:28
Ответы с готовыми решениями:

Конвертация С# и VB.NET
Всем привет. Возможно, глупый вопрос, но он всё-таки возник: правда, что легко взаимно...

конвертация Delphi в vb.net
Нужна помощь .Нужно переписать(конвертировать) с языка Delphi в язык vb.net . Вот код Delphi: unit...

Конвертация из класса в класс
class C { int x=0; public: int getx() { return x; } };

Конвертация проекта из winforms в Asp.net
&quot;конвертация&quot; проекта из winforms в Asp.net Возможно ли такое? или надо будет писать все с 0?

vb.net, asp.net - вопрос по переменным внутри класса
Теоретический вопрос - есть вебформа, с полями и кнопкой submit в коде два метода - Page_Load...

4
Qulis
28 / 28 / 8
Регистрация: 13.12.2009
Сообщений: 70
17.12.2012, 01:12 2
Добавьте метод:
C#
1
2
3
4
public void SetTextListBox(string i)
        {
            listBox1.Invoke(new Action<string>((s) => listBox1.Items.Add(s)), i);
        }
Вызывайте:
C#
1
2
3
4
5
for (int i=0; i<s.Length;i++)
            {
                SetTextListBox(s[i]);
 
            }
Почитайте.
1
Micro
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 438
17.12.2012, 01:43  [ТС] 3
Мне нужно чтобы уже без делегатов все сихронизировано выходило.
на vb.net работает так как надо.
0
novi4ok
554 / 508 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
17.12.2012, 01:50 4
каким образом из одного кода получился другой - "ручками" или инструмент какой-то? если сперва был компилирован в CRL, а оттуда - в c#, то должен работать как часы (конечно, если исходный так работал, не иначе). такие конверторы можно найти у microsoft.
0
freeba
Неадекват
1353 / 1138 / 221
Регистрация: 02.04.2010
Сообщений: 2,621
Записей в блоге: 2
Завершенные тесты: 2
17.12.2012, 09:52 5
В 52 строке ошибка. метод encryptString не объявлен.
Хотите сконвертировать код выкладывайте его без ошибок и целиком.
Вот перевод из дебаггера с закоментированной 52 строкой:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Sockets;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
namespace ConsoleApplication4
{
    public class Class_client
    {
        public delegate void StatusInvoker(string t);
        public delegate void OnReadEventHandler(string _data);
        public delegate void DisconnectedEventHandler(string _reson);
        public delegate void messegeEventHandler(string text);
        private static List<WeakReference> __ENCList = new List<WeakReference>();
        private TcpClient client;
        private NetworkStream stream;
        private byte flag;
        private bool connection;
        private Class_client.OnReadEventHandler OnReadEvent;
        private Class_client.DisconnectedEventHandler DisconnectedEvent;
        private Class_client.messegeEventHandler messegeEvent;
        private object s;
        public event Class_client.OnReadEventHandler OnRead
        {
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            add
            {
                this.OnReadEvent = (Class_client.OnReadEventHandler)Delegate.Combine(this.OnReadEvent, value);
            }
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            remove
            {
                this.OnReadEvent = (Class_client.OnReadEventHandler)Delegate.Remove(this.OnReadEvent, value);
            }
        }
        public event Class_client.DisconnectedEventHandler Disconnected
        {
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            add
            {
                this.DisconnectedEvent = (Class_client.DisconnectedEventHandler)Delegate.Combine(this.DisconnectedEvent, value);
            }
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            remove
            {
                this.DisconnectedEvent = (Class_client.DisconnectedEventHandler)Delegate.Remove(this.DisconnectedEvent, value);
            }
        }
        public event Class_client.messegeEventHandler messege
        {
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            add
            {
                this.messegeEvent = (Class_client.messegeEventHandler)Delegate.Combine(this.messegeEvent, value);
            }
            [DebuggerNonUserCode]
            [MethodImpl(MethodImplOptions.Synchronized)]
            remove
            {
                this.messegeEvent = (Class_client.messegeEventHandler)Delegate.Remove(this.messegeEvent, value);
            }
        }
        public Class_client()
        {
            Class_client.__ENCAddToList(this);
            this.connection = false;
        }
        [DebuggerNonUserCode]
        private static void __ENCAddToList(object value)
        {
            List<WeakReference> _ENCList = Class_client.__ENCList;
            bool flag = false;
            checked
            {
                try
                {
                    Monitor.Enter(_ENCList, ref flag);
                    bool flag2 = Class_client.__ENCList.Count == Class_client.__ENCList.Capacity;
                    if (flag2)
                    {
                        int num = 0;
                        int arg_44_0 = 0;
                        int num2 = Class_client.__ENCList.Count - 1;
                        int num3 = arg_44_0;
                        while (true)
                        {
                            int arg_95_0 = num3;
                            int num4 = num2;
                            if (arg_95_0 > num4)
                            {
                                break;
                            }
                            WeakReference weakReference = Class_client.__ENCList[num3];
                            flag2 = weakReference.IsAlive;
                            if (flag2)
                            {
                                bool flag3 = num3 != num;
                                if (flag3)
                                {
                                    Class_client.__ENCList[num] = Class_client.__ENCList[num3];
                                }
                                num++;
                            }
                            num3++;
                        }
                        Class_client.__ENCList.RemoveRange(num, Class_client.__ENCList.Count - num);
                        Class_client.__ENCList.Capacity = Class_client.__ENCList.Count;
                    }
                    Class_client.__ENCList.Add(new WeakReference(RuntimeHelpers.GetObjectValue(value)));
                }
                finally
                {
                    bool flag3 = flag;
                    if (flag3)
                    {
                        Monitor.Exit(_ENCList);
                    }
                }
            }
        }
        public bool Connect(string server, int port, byte _Flag)
        {
            bool flag = !this.connection;
            bool Connect;
            if (flag)
            {
                try
                {
                    this.client = new TcpClient(server, port);
                    this.stream = this.client.GetStream();
                    this.flag = _Flag;
                    Thread client_Thread = new Thread(new ThreadStart(this.doListen));
                    client_Thread.Start();
                    this.connection = true;
                    Connect = true;
                    return Connect;
                }
                catch (Exception expr_5B)
                {
                    ProjectData.SetProjectError(expr_5B);
                    Exception ex = expr_5B;
                    this.msg(ex.Message);
                    Connect = false;
                    ProjectData.ClearProjectError();
                    return Connect;
                }
            }
            Connect = false;
            return Connect;
        }
        public void Disconnect(string s = "")
        {
            bool flag = this.connection;
            if (flag)
            {
                this.connection = false;
                this.stream.Close();
                this.client.Close();
                flag = (Operators.CompareString(s, "", false) == 0);
                if (flag)
                {
                    Class_client.DisconnectedEventHandler disconnectedEvent = this.DisconnectedEvent;
                    flag = (disconnectedEvent != null);
                    if (flag)
                    {
                        disconnectedEvent("Отключен");
                    }
                }
                else
                {
                    Class_client.DisconnectedEventHandler disconnectedEvent = this.DisconnectedEvent;
                    flag = (disconnectedEvent != null);
                    if (flag)
                    {
                        disconnectedEvent(s);
                    }
                }
            }
        }
        public bool Send(string data)
        {
            bool flag = this.connection;
            bool Send;
            if (flag)
            {
                try
                {
                    byte[] databyte = Encoding.UTF8.GetBytes(data);
                    this.stream.Write(databyte, 0, databyte.Length);
                    this.stream.Flush();
                    Send = true;
                    return Send;
                }
                catch (Exception expr_3B)
                {
                    ProjectData.SetProjectError(expr_3B);
                    Exception ex = expr_3B;
                    this.msg(ex.Message);
                    this.Disconnect("Проблема при отправке.");
                    Send = false;
                    ProjectData.ClearProjectError();
                    return Send;
                }
            }
            Send = false;
            return Send;
        }
        public void test_send(string a)
        {
        }
        private void doListen()
        {
            byte[] bytes = new byte[5242881];
            try
            {
                for (int i = this.stream.Read(bytes, 0, bytes.Length); i != 0; i = this.stream.Read(bytes, 0, bytes.Length))
                {
                    string data = Encoding.UTF8.GetString(bytes, 0, i);
                    Class_client.OnReadEventHandler onReadEvent = this.OnReadEvent;
                    bool flag = onReadEvent != null;
                    if (flag)
                    {
                        onReadEvent(data);
                    }
                }
                this.Disconnect("");
            }
            catch (Exception expr_7A)
            {
                ProjectData.SetProjectError(expr_7A);
                Exception ex = expr_7A;
                this.Disconnect("Do listen:" + ex.Message);
                ProjectData.ClearProjectError();
            }
        }
        public void msg(string t)
        {
            try
            {
                Class_client.messegeEventHandler messegeEventHandler = this.messegeEvent;
                bool flag = messegeEventHandler != null;
                if (flag)
                {
                    messegeEventHandler(t);
                }
            }
            catch (Exception expr_1E)
            {
                ProjectData.SetProjectError(expr_1E);
                Exception ex = expr_1E;
                Interaction.MsgBox(ex.Message, MsgBoxStyle.OkOnly, null);
                ProjectData.ClearProjectError();
            }
        }
    }
}
0
17.12.2012, 09:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2012, 09:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Конвертация из одного класса в другой используя JSON
НЕОБХОДИМО: подключенные библиотеки Jackson Core, Bind и Annotation версии 2.4.3 Два класса...

ASP.NET MVC 2 Конвертация базы данных, созданной VS 2010 в xml-файл
Я создал MVC-приложение. с помощью VS 2010 создал базу данных с расширением mdf. Я связал объектную...

Нет класса ProtectedData (.NET 4.5)
Работаю в visual studio 2015, подключаю пространство имён using System.Security.Cryptography; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.