变量何时创建?

时间:2014-03-14 20:52:26

标签: c# .net c#-4.0

我想知道当我在下面指定变量“temp”时会创建吗?

public class tempClass
{
    public string prop_temp
    {
        get
        {
            string temp = "temp";
            return temp;//When  is the variable created ?
        }
    }  
}

static void Main()
{
    tempClass x = new tempClass(); //Is the variable created now?;
    string b = x.prop_temp;//Or now ?
}

3 个答案:

答案 0 :(得分:4)

在这种情况下,变量是在访问属性时创建的,而不是在创建类时创建的。

属性获取者真的是"简写"对于一种方法。因此,您的temp变量就像方法中的任何其他局部变量一样,并且在该方法运行之前不存在。

答案 1 :(得分:0)

当然

string b = x.prop_temp;//Or now ?

是否创建了变量temp。检查您在prop_temp 属性中声明变量的位置。因此,当您致电prop_temp时会创建它。

答案 2 :(得分:0)

我认为你把变量与它指向的项目混淆了。变量只是代码构造或指针,具体取决于您如何看待它。代码中的变量是“temp”,“b”和“x”。变量“temp”将由编译器优化,并且永远不存在。我认为你问的是什么时候“temp”表示的对象被创建了。该对象位于已编译的代码中,并在代码运行时存在。这是因为它是一个字符串,字符串是不可变的。如果对象是一个类,那么当你调用该方法时,它确实会被创建(对象,而不是变量)。