c# - 为什么 C# 中的 "default"TcpClient clientSocket = default(TcpClient);

标签 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();

不幸的是,我不知道关键字 default 在第三行中的作用。我还以为最后一行初始化了clientSocket,所以之前就不需要初始化了。

最佳答案

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

TcpClient clientSocket = null;

简而言之,它返回指定类型的默认 值。例如,在 int 的情况下,它将返回 0。喜欢:

int i = default(int); // i = 0

default 在类型未知的泛型代码中很有用。

参见:default Keyword in Generic Code (C# Programming Guide)

关于c# - 为什么 C# 中的 "default"TcpClient clientSocket = default(TcpClient);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28720717/

相关文章:

c# - ASP.NET 身份验证允许/阻止页面访问并同时显示/隐藏链接

c# - 获取 "belong"到当前文化的字符列表

java - 将 readline() 的值与字符串进行比较

java - java.net.Socket 是否检测客户端超时?

windows - 默认 Windows 语言?

ruby-on-rails - Rails 允许用户设置默认值

php - 类变量的默认值

c# - 使用自动实现的属性时如何将字符串初始化为 ""

java - 确定 JNA 下的 setsockopt 平台

c# - 字符串缓存。内存优化和重用