-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 488
1

Преобразование типов

16.05.2018, 16:15. Показов 453. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я унаследовал стандартный класс Socket в своем классе ASock.
Вопрос о приведение типа Socket к моему классу ASock.
Вот так не работает:
C#
1
2
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            ASock a = (ASock)s;
Вот так работает:
C#
1
2
            Socket s = new ASock(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            ASock a = (ASock)s;
Но меня интересует именно первый вариант. Подскажите такое можно провернуть? Или как эту задачу можно по другому решить.

Добавлено через 2 минуты
вот сам унаследованный класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    class ASock : Socket
    {
        public ASock(AddressFamily addressFamily, SocketType ASockType, ProtocolType protocolType)
            : base(addressFamily, ASockType, protocolType) { }
 
        public void ASend(string mess)
        {
            byte[] buf = Encoding.UTF8.GetBytes(mess);
            BeginSend(buf, 0, buf.Length, 0, new AsyncCallback(Srv_Events.OnSend), this);
        }
        public void ASend(byte[] buf)
        {
            BeginSend(buf, 0, buf.Length, 0, new AsyncCallback(Srv_Events.OnSend), this);
        }
        public void AClose(SocketShutdown socketShutdown = SocketShutdown.Receive)
        {
        }
    }
Добавлено через 2 минуты
Загвоздка в том что сервер возвращает подключенный сокет именно в типе Socket. А мен надо преобразовать его в свой тип.

Добавлено через 10 секунд
ASock handler = null;


handler = (ASock)srv_handler.EndAccept(ar);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2018, 16:15
Ответы с готовыми решениями:

Преобразование типов
Как преобазовывать(копировать) ListBox.lines в List<string> Description = new List<string>(); и...

Преобразование типов
Подскажите как в c# с массивом int можно поработать как с массивом byte; Как в с++, например, int...

Преобразование типов....
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Преобразование типов
Есть метод, который принимает на вход переменную типа IEnumerable<DataRow>; у меня есть...

3
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,747
Записей в блоге: 2
16.05.2018, 17:33 2
Например, сделайте конструктор класса Asock, который будет принимать объект Socket
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
16.05.2018, 17:56 3
Олег2000про, агрегируйте объект Socket внутри ASock, как приватное поле. А в публичных методах ASock выполняйте действия с Socket. Сам Socket, как сказано выше передавайте в конструктор ASock.
0
-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 488
16.05.2018, 23:13  [ТС] 4
Toros1992, aquaMakc, спасибо большое. Даже не догадывался о таком решении
0
16.05.2018, 23:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2018, 23:13
Помогаю со студенческими работами здесь

Преобразование типов
Есть такая заковырка. Допустим есть переменая string a="54"; , так вот как ее можно преобразовать к...

Преобразование типов
нужна помощь с преобразованием типа. Из текстового поля в которое предполагается введение 13...

Преобразование типов
Код: using System; using System.Text; public class Program { public static void...

Преобразование типов
подскажите как преобразовать правильно значение стринг в булеан мой пример: namespace...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru