2016-06-30 3 views
1

Метод TcpClient.Close() в .Net Core/.Net Standard. enter image description hereКак закрыть TcpClient

Как закрыть клиента?

+2

Используйте Dispose() вместо этого. –

+0

Спасибо, @Hans Passant. Dispose() существует и, возможно, единственный способ закрыть, но почему-то это не очень хорошо. Ядро API .net действительно сильно изменяет уровень метода/члена, переход из .NET Framework может быть непростой задачей. –

+2

Маленькая точка в том, чтобы погладить меня об этом, подать жалобы [здесь] (https://github.com/dotnet/corefx/issues). Нажмите кнопку «Новая проблема». –

ответ

2

Как @HansPassant сказал, Dispose() - это путь.

using блок будет автоматически расположить клиента:

using (client) 
{ 
    //... 
} 

Или, вы можете добавить метод в класс:

public void Close() 
{ 
    client?.Dispose(); 
} 

Даже лучшим решением было бы сделать свой класс, который потребляет TcpClient реализовать IDisposable также.

+0

Возможно, вне темы, но что делает знак вопроса в этом примере? – Joshua

+1

@ Joshua Это [нулевое распространение] (http://stackoverflow.com/documentation/c%23/24/c-sharp-6-0-features/51/null-propagation#t=201705121527113638092) с C# 6. Это то же самое, что и 'if (client! = null) ...'. –

Смежные вопросы