程序如下:
我的编译环境时visual studio.net (c# 速成测试版)
using System;
    class Program
    {
        public  int x;
        static void Main(string[] args)
        {
            x = 5;
            Console.WriteLine("the value of x is:{0}",x);
            Console.WriteLine("the value of this.x is:{0}",this.x);
              
        }
    }
错误如下:
程序提示错误如下:
我的问题如下:
错误
1程序“C:\Documents and Settings\Administrator\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\obj\Debug\ConsoleApplication1.exe”不包含适合入口点的静态“Main”方法 ConsoleApplication1
什么意思
2:在类的方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用 这句话如何理解 为什么this作为一个值的类型那?
          调用该方法对象在此程序中是否表示类program            引用在此如何理解
using System;
class Fact
{
int x;
public int getFact()
 {
float temp;
int save=x;
int a=1;
while(x>a)
  {
a++;
temp=this.x/a;
x/=a;
if(float(x)!=temp)
    {
     return -1;
    }
  }
swap(this.x,save);
return save;
 }
}
questions 如下:在这个程序中 是否this 始终都代表类Fact?请结合C# 含义予以解释
using System;
class Window;
  {
  public Window[] m_childWindow=new Window[5];
  public bool IsHaveChild=false;
  putlic bool IsActive;
  public Window GetActiveWindow()
     {
     if(IsHaveChild==false)
        {
         IsActive=true;
         return this;
        } 
     else
        {
        for(i=0;i<5;i++)
            {
             if(m_childWindow[i].IsActive==true) 
              {
              return m_childWindow[i];
              }
            }
        } 
    return this;  
     }
  }
在这个程序中this该如何解释呢?它代表是么对象呢?当前的活动窗口吗?请结合C# 含义予以解释

解决方案 »

  1.   

    public  int x;
    改为public static int x;就没问题了
      

  2.   

    this.用一句简单的话来说所代表的是当前类的一个实例
    using System;
        class Program
        {
            public  int x;
            static void Main(string[] args)
            {
                x = 5;
                Console.WriteLine("the value of x is:{0}",x);
                Console.WriteLine("the value of this.x is:{0}",this.x);
                  
            }
        }
    这里this代表的是当前类 Program 的一个实例
    程序运行时首先从Main()函数进入执行X=5;由于X不是一个静态变量所以调用它的时候必须先创建类
    program的一个对象,利用对象来引用它的字段值.
    其次   
    这里this代表的是当前类 Program 的一个实例所以首先必须先创建一个program的对象来代替this
    using System;
    class Fact
    {
        int x;
       public int getFact()
        {
          float temp;
          int save=x;
          int a=1;
          while(x>a)
            {
             a++;
             temp=this.x/a;
             x/=a;
             if(float(x)!=temp)
              {
                return -1;
              }
            }
          swap(this.x,save);
          return save;
       }
    }
    这里的this.代表的就是当前类 FACT的一个实例.
    例如:Fact fact=new Fact();
    这时这个this代表的就是fact这个对象
    using System;
    class Window;
      {
      public Window[] m_childWindow=new Window[5];
      public bool IsHaveChild=false;
      putlic bool IsActive;
      public Window GetActiveWindow()
         {
         if(IsHaveChild==false)
            {
             IsActive=true;
             return this;
            } 
         else
            {
            for(i=0;i<5;i++)
                {
                 if(m_childWindow[i].IsActive==true) 
                  {
                  return m_childWindow[i];
                  }
                }
            } 
        return this;  
         }
      }
    这里的this就是代表一个window窗体也就是类 window的一个实例.return this;  根据你代码的意思就是返回一个当前处于激活状态的窗体