读书人

大家帮忙找下这6道C#的错再给点解释

发布时间: 2012-02-02 23:57:14 作者: rapoo

大家帮忙找下这6道C#的错,再给点解释 谢谢哈
1.******************************************************
class Program
{
public static void Main()
{
A t = new A();
int x, y;
x = 5; y = 8;
t.S(x,y);
Console.WriteLine("x={0},y={1}",x,y);
}
}
class A
{
public void S(int a, int b)
{
int temp;
temp = a; a = b; b = temp;
}
}
2.******************************************************
class A
{
static int n;
public A()
{
n++;
}
public void B()
{
Console.WriteLine(n);
}
public static void Main()
{
B();
}
3.******************************************************
class A
{
public static void Main()
{
C d = new C();
}
}
class B
{
public B()
{
Console.WriteLine("实例化B对象!");
}
}
class C : B
{
public C()
{
Console.WriteLine("实例化Dog对象!");
}
}
4.******************************************************
class Program
{
public static void Main()
{
Dog d = new Dog();
Test t = new Test();
t.Eat(d);
}
}
class Test
{
public void Eat(Animal a)
{
a.Eat();
}
}
class Animal
{
public void Eat()
{
Console.WriteLine("Eat Something!");
}
}
class Dog : Animal
{
public void Eat()
{
Console.WriteLine("Eat Bone!");
}
}
5.******************************************************
interface IUSB
{
public void Download(string file)
{ }
}
********************************************
class Mp3:IUSB
{
public void Play(string file)
{
Console.WriteLine("播放{0}",file);
}
}
6.*****************************************************
class Program
{
public static void Main()
{
Mp3 mp3 = new Mp3();
mp3.Download("test.mp3");
}
}
interface IUSB
{
void Download(string file);
}
interface IBluetooth
{
void Download(string file);
}
class Mp3:IUSB,IBluetooth
{
void IUSB.Download(string file)
{
Console.WriteLine("用USB下载{0}", file);
}
void IBluetooth.Download(string file)
{
Console.WriteLine("用Bluetooth下载{0}", file);


}
}
7.*****************************************************
class Program
{
public static void Main()
{
Math math = new Math();
Call obj;
obj = new Call(math.Add);
int r=obj(3, 5);
Console.WriteLine(r);
}
}
public delegate int Call(int a,int b);
class Math
{
public int Add(int a, int b)
{
Console.WriteLine("Add Method");
return a + b;
}
public int Sub(int a, int b)
{
Console.WriteLine("Sub Method");
return a - b;
}
}
8.*****************************************************
class Program
{
public static void Main()
{
Album friends = new Album(3); // 创建一个容量为 3 的相册
Photo first = new Photo("Jenn"); // 创建 3 张照片
Photo second = new Photo("Smith");
Photo third = new Photo("Mark");
friends[0] = first; // 向相册加载照片
friends[1] = second;
friends[2] = third;
Photo obj1Photo = friends[2]; // 按索引检索
Console.WriteLine(obj1Photo.Title);
Photo obj2Photo = friends["Jenn"]; // 按名称检索
Console.WriteLine(obj2Photo.Title);
}
}
class Photo
{
string _title;
public Photo(string title)
{
this._title = title;
}
public string Title
{
get
{
return _title;
}
}
}
class Album
{
Photo[] photos;
public Album(int capacity)
{
photos = new Photo[capacity];
}
}
9.*****************************************************
class Program
{
public static void Main()
{
ArrayList al = new ArrayList();
A a=new A(3);al.Add(a);
A b=new A(4);al.Add(b);
A c=new A(5);al.Add(c);
al.RemoveAt(0);
al.RemoveAt(1);
foreach (object obj in al)
{
A aa = (A)obj;
Console.WriteLine(aa.no);
}
}
}
class A
{
public int no;
public A(int no)
{
this.no = no;
}
}





[解决办法]

C# code
第一题想输出x=8,y=5?class Program    {        public static void Main()        {            A t = new A();            int x, y;            x = 5; y = 8;            t.S(x, y);            Console.WriteLine("x={0},y={1}", x, y);            Console.Read();        }    }    class A    {        public void S(int a, int b)        {            int temp;            temp = a; a = b; b = temp;        }    } 建议看下值传递与引用传递第二题无法引用方法B的错误?编译的时候已经提示了无法引用非静态的字段或属性,将方法B声明成静态的public static void B()第三题什么错误?建议让别人改错的时候写上啥错误,和期待的正确结果第四题想输出Eat Bone!?这样写public virtual void Eat()public override void Eat()第五题干什么的?第六题:class Program    {        public static void Main()        {            IUSB mp3 = new IUSBMp3();            mp3.Download("test.mp3");            IUSB mp32 = new IBluetoothMp3();            mp3.Download("tt");            Console.Read();        }    }    interface IUSB    {        void Download(string file);    }    interface IBluetooth    {        void Download(string file);    }    class IUSBMp3 : IUSB    {        public void Download(string file)        {            Console.WriteLine("用USB下载{0}", file);        }            }    class IBluetoothMp3 : IUSB    {        public void Download(string file)        {            Console.WriteLine("用Bluetooth下载{0}", file);        }    }第七题委托题?没接触过直接忽略嘿嘿第八题:class Program    {        public static void Main()        {            Album album = new Album(3); // 创建一个容量为 3 的相册             Photo[] friends = album.photos;            Photo first = new Photo("Jenn"); // 创建 3 张照片             Photo second = new Photo("Smith");            Photo third = new Photo("Mark");            friends[0] = first; // 向相册加载照片             friends[1] = second;            friends[2] = third;                         Photo obj1Photo = friends[2]; // 按索引检索             Console.WriteLine(obj1Photo.Title);            //下边的错误是因为数组不支持用名称检索            Photo obj2Photo = friends["Jenn"]; // 按名称检索             Console.WriteLine(obj2Photo.Title);            Console.Read();        }    }    class Photo    {        string _title;        public Photo(string title)        {            this._title = title;        }        public string Title        {            get            {                return _title;            }        }    }    class Album    {        public Photo[] photos;        public Album(int capacity)        {            photos = new Photo[capacity];        }    } 第九题: A a = new A(3); al.Add(a);            A b = new A(4); al.Add(b);            A c = new A(5); al.Add(c);            al.RemoveAt(0);            al.RemoveAt(1);         al.RemoveAt(0);//删除a            al.RemoveAt(1);//删除c所以输出4你认为输出5是不是?编译正确不知道你所指的错误是什么 


[解决办法]

C# code
看了下,补充楼上的第4题,如果是写出输出什么,那么应该是Eat Something!!,因为函数没有被重写,还是调用基类的函数第5题:接口的方法是不需要修饰符的,而且也不需要实现,所以正确写法是:interface IUSB     {        void Download(string file);    } 第6题:这题考的是,如果接口含有相同方法,那么该如何去继承和调用继承的时候,是不能加修饰符public的,只能是private,题目上写法是正确的,关键就是调用的时候他写错了,正确写法:class Program     {          public static void Main()         {             Mp3 mp3 = new Mp3();             ((IUSB)mp3).Download("test.mp3");//调用IUSB接口的方法            ((IBluetooth)mp3).Download("test.mp3");//调用IBluetooth接口方法        }     } 第七题:这程序没问题,可能考的是输出什么,结果是:8  委托的用法其余的Up 

读书人网 >C++ Builder

热点推荐