日期:2014-05-18  浏览次数:20447 次

这个代码的构造函数是什么?
这个代码里面有构造函数吗?记得构造函数是进行类对象初始化工作,其函数名与类名相同。在没有自定义构造函数的情况下,会自动调用默认的无参数的构造函数,即所有成员全部初始化为0值。即数字为0,BOOL 为false,任何引用类型为null。那这个代码的构造函数是什么,是null的状态下也能运行正常吗?

<script runat="server" Language="C#">
public class Car
{
  private string color;
  private int gear;
  public string Color
  {
  get
  {
  return color;
  }
  set
  {
  color=value;
  }
  }
  public int Gear
  {
  get
  {
  return gear;
  }
  }
  public void ChangeGear(int direction)
  {
  if(direction<0)
  gear-=1;
  if(direction>0)
  gear+=1;
  if(gear>5)
  gear=5;
  if(gear<-1)
  gear=-1;
  }
  
  public void ChangeGear(string Direction)
  {
  if(Direction.ToLower()=="down")
  ChangeGear(-1);
  if(Direction.ToLower()=="up")
  ChangeGear(+1);
  }
  
  public Car() //这个是不是构造函数?
  {
  color="Cold gray steel";
  }
}

void Page_Load()
{
  Car MyCar=new Car();
  Response.Write("<b>New object 'MyCar' created.</b>");
  Response.Write("<b>Color:"+MyCar.Color);
  Response.Write("<b>Gear:"+MyCar.Gear);
  
  MyCar.Color="Black";
  Response.Write("<b>Properties updated.</b>");
  Response.Write("<br>New color:"+MyCar.Color);
  Response.Write("<br>New gear:"+MyCar.Gear);
  
  MyCar.ChangeGear("up");
  Response.Write("<br><b>Shifted 'up' one gear.</b>");
  Response.Write("<br>New Gear:"+MyCar.Gear);
}
</script>

------解决方案--------------------
C# code
public Car()  
  {
  color="Cold gray steel";
  }

------解决方案--------------------
public Car() //这是构造函数? 

color="Cold gray steel"; 
}
------解决方案--------------------
Car()括号里没有参数是因为它是一个无参的构造函数,你也可以自己给它创建几个带参的构造函数:
C# code

Car(string aa)//这里是带一个参数的构造函数
{
    color=aa;
}

------解决方案--------------------
构造函数是可以不带参数的!
------解决方案--------------------
最起码还有一个静态构造函数,在初始化时,静态构造函数最先执行
------解决方案--------------------
public Car()

color="Cold gray steel"; 


//这是构造函数,
color是他的一个私有成员。 
color 可以通过 Color 属性提取,
还有构造函数可以没有参数, 默认的构造函数就是无参的,还可以写自己的无参构造函数
------解决方案--------------------
Car MyCar=new Car(); 
 执行这句的时候就会调用构造方法 就会给color变量赋值