C# не может конвертировать из "Gameserver.Client.TCP" в "Sytem. Net .Sockets.TcpClient" - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь настроить тестовый сервер для простой Игры и следую инструкциям (https://www.youtube.com/watch?v=uh8XaC0Y5MA). Проблемный c бит кода:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;


namespace GameServer
{
    class Client
    {
        public static int dataBufferSize = 4096;
        public int id;
        public TcpClient tcp;

        public Client(int _clientId)
        {
            id = _clientId;
            tcp = new TCP(id);
        }

        public class TCP
        {
            public TcpClient socket;

            private readonly int id;
            private NetworkStream stream;
            private byte[] receiveBuffer;

            public TCP(int _id)
            {
                id = _id;
            }
        }
    }
}

Всякий раз, когда я пытаюсь запустить программу, я получаю сообщение об ошибке из заголовка из-за этого блока кода (именно «Часть нового TCP (id)») ):

public Client(int _clientId)
{
    id = _clientId;
    tcp = new TCP(id);
}

Насколько я понимаю, проблема в том, что я не могу конвертировать из написанного на собственном коде в стандартную библиотеку, но я не вижу, где это может быть проблемой. Поэтому мой вопрос: есть ли конверсия, которую я могу использовать, или какое-то другое решение моей проблемы. Заранее спасибо. PS. Если вам нужно больше исходного кода, пожалуйста, напишите комментарий.

1 Ответ

1 голос
/ 08 апреля 2020

Похоже, ваше поле tcp определяется как тип TCPClient, а не как тип TCP. Там несоответствие типов. Какой тип вы хотите, чтобы он был?

Вам нужно исправить либо тип за new, либо тип в определении вашего поля. Основываясь на структуре (этот тип TCP содержит TCPClient внутри), вы хотели, чтобы поле tcp было типа TCP. Так что измените public TCPClient tcp; на public TCP tcp;.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...