在 .NET 中初始化空变量的正确方法是什么?我的一位同事告诉我,将变量硬定义为 null 会降低速度。
int var1; // good practice
string s1; // good practice
int var2 = 0; // bad practice
string s2 = null; // bad practice
对吗?
最佳答案
假设您实际上是指默认 值而不是null 值,如果您实际分配,它可能会非常、非常轻微地减慢速度构造函数中的值而不是变量声明中的值。如果它是变量声明的一部分,我可能期望 JIT 编译器删除不必要的赋值,因为对象的内存在第一次初始化时被删除。
但是,无论哪种情况,这种情况发生的可能性都非常小。
您认为哪种形式更具可读性?在绝大多数情况下,这要重要得多。
编辑:请注意,至少对于静态字段,在某些微妙的情况下两者的行为方式不同。这是一个示例 - Test1 和 Test2 类仅在 y
声明是否具有赋值方面有所不同:
using System;
class Test1
{
static int x = GetX();
static int y = 0;
public static void Hello()
{
Console.WriteLine("{0} {1}", x, y);
}
static int GetX()
{
y = 2;
return 5;
}
}
class Test2
{
static int x = GetX();
static int y;
public static void Hello()
{
Console.WriteLine("{0} {1}", x, y);
}
static int GetX()
{
y = 2;
return 5;
}
}
class Test
{
static void Main()
{
Test1.Hello();
Test2.Hello();
}
}
关于c# - 在 .NET 中初始化空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592274/