为什么在C#TcpClient中使用"default"clientSocket = default(TcpClient);

use*_*137 2 c# sockets default

我找到了一些关于如何在C#中编写TCP/IP客户端 - 服务器应用程序的代码服务器Main从这开始:

TcpListener serverSocket = new TcpListener(8888);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
Console.WriteLine(" >> Server Started");
clientSocket = serverSocket.AcceptTcpClient();
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道关键字默认在第三行中做了什么.我原以为最后一行初始化了clientSocket,因此之前不需要初始化它.

Hab*_*bib 9

default关键字只是设置对象clientSocketnull或引用类型的默认值,因为TcpClient是一个类,(引用类型).它与:

TcpClient clientSocket = null;
Run Code Online (Sandbox Code Playgroud)

简而言之,它返回指定的任何类型的默认值.例如,如果int它将返回0.喜欢:

int i = default(int); // i = 0
Run Code Online (Sandbox Code Playgroud)

default 在通用代码中很有用,其中类型是未知的.

请参阅:通用代码中的默认关键字(C#编程指南)