首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#入门遇到小疑点一个,大家给小弟我看看

2012-01-26 
c#入门遇到小问题一个,大家给我看看啊刚开始学习c#,照这书上写一个关于类方面的实例,是在vs2005中新建的控

c#入门遇到小问题一个,大家给我看看啊
刚开始学习c#,照这书上写一个关于类方面的实例,是在vs2005中新建的控制台应用程序项目,代码如下,
using   System;
using   System.Collections.Generic;
using   System.Text;

namespace   ConsoleApplication1
{abstract   class   shape  
  {   public   const   double   p1=3.14;  
        protected   double   x,y
        public   shape()//构造无参函数
        {x=y=0;
        }
        public   shape(double   x,double   y)
        {this.x=x;
          this.y=y;
        }
        public   abstract   double   area     }
        class   rectangle:shape    
        {public   rectangle():base
          public   rectangle(double   x,double   y):base(x,y){}
          public   override   void     double   area()
          {return(x*y);}
          public   double   length
          {get{return   x;}set{if(value> 0){x=value;}}}
          public   double   width
          {get{return   y;}set{if(value> 0){y=value;}}}
        }
        class   ellipse:shape  
        {public   ellipse(double   x,double   y):base(x,y){}
          public   override   void     double   area()
          {return   pi*x*y;}
        }
        class   circle:ellipse
        {public   circle   (double   r):base(r,0){}
          public   override   void     double   area()
{
  return   pi*x*x;
}
        }
 
 
  }
        class   Program
        {
                static   void   Main(string[]   args)
                {
                        double   len   =   2.5;
                        double   wid   =   3.0;
                        double   rad   =   4.1;
                        rectangle   arect=new   rectangle();
                        arect.length=len;
                        arect.width=wid;
                        circle   acirc=new   circle(rad);
                        Console.WriteLine( "area   of   rect   is:{0} ",arect.area());


                        Console.WriteLine( "area   of   circ   is:{0} ",acirc.area());
                }
        }

就是3个派生类的时候,每次重载基类的area的时候,就说那个double不对,为什么呢
我也不知道描述的对不对,大家贴到vs里运行一下就知道我遇到什么问题了,帮帮忙吧



[解决办法]
public override void double area()
void 没有返回值 double返回double型
而且我觉得看这段代码很晕,不整齐
[解决办法]
大哥,你的代码好多错
错误的主要原因是void double area() ,因为void表示无返回值,double表示返回double,自然就错了
另外的错就不说了
看下面
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
abstract class shape
{
public const double pi = 3.14;
protected double x, y;
public shape()//构造无参函数
{
x = y = 0;
}
public shape(double x, double y)
{
this.x = x;
this.y = y;
}
public abstract double area();
}
class rectangle : shape
{
public rectangle() : base() { }
public rectangle(double x, double y) : base(x, y) { }
public override double area()
{
return (x * y);
}
public double length
{
get
{
return x;
}
set
{
if (value > 0)
{
x = value;
}
}
}
public double width
{
get
{
return y;
}
set
{
if (value > 0)
{
y = value;
}
}
}
}
class ellipse : shape
{
public ellipse(double x, double y) : base(x, y) { }
public override double area()
{
return pi * x * y;
}
}
class circle : ellipse
{
public circle(double r) : base(r, 0) { }
public override double area()
{
return pi * x * x;
}
}


class Program
{
static void Main(string[] args)
{
double len = 2.5;
double wid = 3.0;
double rad = 4.1;
rectangle arect = new rectangle();
arect.length = len;
arect.width = wid;
circle acirc = new circle(rad);
Console.WriteLine( "area of rect is:{0} ", arect.area());
Console.WriteLine( "area of circ is:{0} ", acirc.area());
}
}

}
[解决办法]
似乎你抄代码的时候抄错了好多地方
[解决办法]
恭喜!见者有分!

热点排行