【发布时间】:2014-03-21 00:35:34
【问题描述】:
在研究this 重新分配结构可能性的目的时,我遇到了以下难题:为什么需要在某些结构构造函数的开头执行this = default(...)。它实际上已经归零了内存,不是吗?
查看 .NET core 的示例:
public CancellationToken(bool canceled)
{
this = default(CancellationToken);
if (canceled)
{
this.m_source = CancellationTokenSource.InternalGetStaticSource(canceled);
}
}
【问题讨论】:
-
C# Structs "this = ...." 的可能副本。 big Jon 已经回答了。
-
@Adriano:Jon 没有说任何关于在其自己的构造函数中使用自身的
default()初始化结构。 -
@Adriano 你在说什么?
-
@BoltClock IMO 这个问题中的 引号 是
this赋值本身,default()所做的应该不是问题。 -
@Adriano:很公平。 FWIW,似乎有一个更相似的问题,基于这个特定结构源的不同版本,它使用
new而不是default重新分配-stackoverflow.com/questions/5562908/…