| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 852 人关注过本帖
标题:类实例化与结构类型
只看楼主 加入收藏
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
结帖率:50%
收藏
 问题点数:0 回复次数:7 
类实例化与结构类型

1。对类进行实例化是不是只能在Main()函数进行呢??在其它类中可不可以对类进行实例化呢???

2。定义一个结构类型。struct aaa{} 这人结构类型也可以拥有构造函数吗???

搜索更多相关主题的帖子: 实例 结构 类型 
2007-09-22 09:39
jxnuwy04
Rank: 2
等 级:新手上路
威 望:4
帖 子:768
专家分:0
注 册:2006-9-15
收藏
得分:0 
首先第一个问题:对类实例化问题,不一定要在Main()函数中,可以在你想要的任何地方.
第二个问题:结构类型也有构造函数,不过它应该不叫构造函数吧,好像是有其他的叫法,具体什么我忘记了!

------------------不为别的,就为你,我的理想!-----------------
2007-09-22 09:50
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
收藏
得分:0 
在c#里面struct已经变成一个值类型,构造函数只是赋值,存放在堆栈上面

在你想要实例化的地方,应该就可以,不必非要在MAIN


jorden008@
2007-09-22 11:22
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
收藏
得分:0 
各位,。请问一下。。你们对c sharp中的多态是如何理解的呢???

c sharp初学者
2007-09-22 14:51
jxnuwy04
Rank: 2
等 级:新手上路
威 望:4
帖 子:768
专家分:0
注 册:2006-9-15
收藏
得分:0 

在基类中编写一个虚方法,派生类重载这些方法,根据不同的派生类会执行相应的方法.其实书上说的听好的,不过到现在还没真正用到,只是做作业的时候上机测试过,感觉满好的.


------------------不为别的,就为你,我的理想!-----------------
2007-09-22 15:20
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
收藏
得分:0 
那基类如何会根据不同的派生类会执行相应的方法呢?????

c sharp初学者
2007-09-22 15:42
jxnuwy04
Rank: 2
等 级:新手上路
威 望:4
帖 子:768
专家分:0
注 册:2006-9-15
收藏
得分:0 
你在基类中不是写了一个虚方法吗?当在程序中调用这个虚方法时,运行时可以判定应该具体调用哪个方法.其实这个时候系统调用的是最底层的派生方法,如果原始虚方法没有被重载,那么最底层的派生方法就是原始虚方法,否则最底层的派生方法就是相应对象(派生类的实例)中的重载方法.
这里有一个例子
using System;
namespace LearningCSharp
{
public class Animal //基类
{
public Animal() {}
public void Sleep() {}
public bool ISHungry=true;
public virtual void Eat()
{
Consloe.WriteLine("Eat Something");
}
}
public class Elephant : Animal
{
public override void Eat()
{
Console.WriteLine("Eat grass");
}
}
public class Mouse : Animal
{
public override void Eat()
{
Console.WriteLine("Eat cheese");
}
}
public class Cat : Animal
{
public override void Eat()
{
Console.WriteLine("Eat mouse");
}
}
public class WildLife
{
public WildLife()
{
Elephant myElephant=new Elephant();
Mouse myMouse=new Mouse();
Cat myCat=new Cat();
FeedingTime(myElephant);
FeedingTime(myMouse);
FeedingTime(myCat);
}
public void FeedTime(Animal someCreature)
{
if(someCreature.ISHungry)
{
someCreature.Eat();
}
}
static void Main(string[] args)
{
WildLife w=new WildLife();
}
}
}
运行结果如下:
Eat grass
Eat cheese
Eat mouse

------------------不为别的,就为你,我的理想!-----------------
2007-09-22 16:16
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
得分:0 
虚函数的重载,就可以利用多态性来使用了,很灵活

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-09-22 18:47
快速回复:类实例化与结构类型
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058397 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved