私人和公共变量

问题描述:

namespace hi 
{ 
    class hithere 
    { 
     public int numberOne = 12; 
     public int numberTwo = 12; 

     static void yo() 
     { 
      public int numberThree = 12; 
      private int numberFour = 12; 
     } 
    } 
} 

有人能告诉我这个代码片段中变量numberOne,numberTwo,numberThree和numberFour之间的区别吗?私人和公共变量

+0

这似乎不是有效的C#代码。 IIRC你不能在局部变量之前放置一个public/private关键字。你确定你的例子是正确的吗? – 2010-12-14 15:55:10

+1

这将不会编译任何延伸。 '函数yo'是完全无效的,没有任何意义。 – 2010-12-14 15:56:39

+2

什么是函数应该是?这个名字暗示了一个功能,但是没有参数,并且使用“公共”和“私人”暗示了一个内部阶级。代码片段不会编译,它不是很清楚你的意图。 – Juliet 2010-12-14 15:56:46

numberOne和numberTwo是堆中的公共实例变量。它们可以直接在具有hithere对象实例的对象内部访问。 numberThree和numberFour不能以这种方式访问​​,因为它们不是实例变量,而是封装在函数yo的范围内并存储在它的相应栈中。

+0

当时太慢了。 – 0x808080 2010-12-14 15:58:29

+0

等等,那么你可以从另一个班级访问这些吗?我仍然不了解公共和私人变量之间的差异,就像One和Two一样。 – DLA 2010-12-14 17:34:35

+0

假装你在另一课...你可以写下这段代码: HiThere hiObj = new HiThere(); if(hiObj.numberOne == hiObj.numberTwo) – 0x808080 2011-01-20 14:38:02

numberOne和numberTwo是类的成员变量。 numberThree和numberFour是局部变量,作用域为该函数。
接下来,您不能为局部变量声明访问修饰符(private/public)。

+0

然后,他的问题并没有引起注意。可能是某种伪c#代码。 – 2010-12-14 16:07:11