我找到了很多有关静态的文章(MSDN,MSDN 2,Stack Overflow等等),但是我仍然不明白为什么此代码返回-1:
class Program
{
static int value = 0;
static int foo()
{
value = value - 7;
return 1;
}
static void Main(string[] args)
{
value -= foo();
Console.WriteLine(value);
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
这是调试器在foo()运行后但从中减去结果之前显示的内容value:
但是,下一步value是-1:
我希望-8因为静态字段存储在内存中一次。
当我将其更改为
var x = foo();
value -= x;
Run Code Online (Sandbox Code Playgroud)
表明 -8
究竟如何运作?
我发现一些代码,但我不知道什么是回报的目的default的接口?
该interface由少数实现classES
public ISocketDevicePart Parent => default(ISocketDevicePart);
public interface ISocketDevicePart
{
ISocketDevicePart Parent { get; }
IEnumerable<ISocketDevicePart> Childs { get; }
IXYOffset Offset { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我不确定结果。它应该null 总是返回吗?
c# ×2