Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 默认关键字在C语言中的实现_C# - Fatal编程技术网

C# 默认关键字在C语言中的实现

C# 默认关键字在C语言中的实现,c#,C#,我想知道如何为defaultint获取0。我曾尝试使用ILSpy在Int32结构中查找默认值,但没有看到任何结果 有人能解释一下默认关键字背后的机制吗?它是如何工作的?默认关键字返回定义但不分配字段时设置的默认值 public class Program { int someInt; string someStr; } 在上面的示例中,someInt将设置为0,someStr将为null。这些值与使用defaultint或defaultstring时返回的值相同 您不能更改类中

我想知道如何为defaultint获取0。我曾尝试使用ILSpy在Int32结构中查找默认值,但没有看到任何结果


有人能解释一下默认关键字背后的机制吗?它是如何工作的?

默认关键字返回定义但不分配字段时设置的默认值

public class Program
{
    int someInt;
    string someStr;
}
在上面的示例中,someInt将设置为0,someStr将为null。这些值与使用defaultint或defaultstring时返回的值相同


您不能更改类中的行为,因为default的返回值将始终为null。因此,您可能想改为查看。

我可以在.NET framework中使用ILSpy查看此表吗?还是在编译器中?如果您对C如何将默认值…转换为IL的低级方面感兴趣,请查看和。谢谢,我会看一看。@ogun这是C语言的功能。在.Net framework代码中,您怎么能期望这样呢?C编译器知道默认值,它只发出IL。这只是一种正确的方法。defaultT的值仅取决于T,而不取决于结果值分配到的某个字段或其类型。也就是说,以这种方式描绘默认结果至少可以解释操作员的名字。还可以补充一点,一个从未显式设置的值类型字段将通过将其所有位设置为0来隐式初始化。@stakx我并不是想暗示它与实例字段有关系。请随意编辑我的措辞: