声明变量的另一个优点和缺点

本文关键字:缺点 另一个 变量 声明 | 更新日期: 2023-09-27 18:21:30

我是C#的初学者,正在努力理解在不同范围内声明变量的效果。之间是否存在明显的性能差异

示例1

class A
{
   static int i;
   static string temp;
}
class B
{
   while(true)
   {
       A.i=10;
       A.temp="Hello";
   }
}

示例2

class B
{
   int i;
   string temp;
   while(true)
   {
       i=10;
       temp="Hello";
   }
}

示例3

class A
{
   public int i;
   public string temp;
}
class B
{
A D = new A();
   while(true)
   {
       D.i=10;
       D.temp="Hello";
   }
}

声明变量的另一个优点和缺点

第一个代码片段共享这两个变量:它们被静态分配,所有线程都将在并发环境中使用它们。这是非常糟糕的——应该避免在生产代码中出现这种情况。

第二个和第三个代码片段是线程安全的。第三片段将变量CCD_ 1和CCD_;第二个片段没有。此外,第三个片段需要额外分配一个对象,并在返回时创建一个要收集的对象(当然,由于while (true)循环无限,它永远不会返回,所以这并不重要)。

如果这两个变量在逻辑上不属于一起,则应避免为它们创建类。如果它们确实属于一起,则应该将使用这些变量的代码移到声明它们的类中。

就性能和内存影响而言,与第二个代码段相比,第三个代码段需要额外的内存块,但它太小了,不值得注意。性能差异几乎不可能检测到,所以你不应该太担心:在大多数情况下,最好优化代码的可读性。