求关于 接口、委托、多态、多线程、泛型 的学习
看了 N本C#的书, M个C#的例子, X个帖子 还是没弄清楚以下问题,或者说似懂非懂.
特散分请大家指点迷津
接口、委托、多态、多线程、泛型
1、分别在什么情况下用?
2、如何用?
3、和为什么要用这个?
再加
在什么 时候用静态方法,什么时候用 实例方法
[解决办法]
msdn 查找 实例 你说的都有
[解决办法]
静态的就是方便调用 一般工具类 都可以用静态类
[解决办法]
1:接口 个人感觉像变准化这个样子,定义了就需要实现
2:委托 事件用
3:多态 面向对象的要求
4:多线程 并行处理时用如:进度条
5:泛型 强类型,可以使参数和对象,更加的安全,看msdn
[解决办法]
接口一般是抽象行为的在一个地方定义出行为例如:
public interface IBox
{
void Open();
void Close();
}
然后可以写:
public class MyBox:IBox
{
..只要是有IBox就必须包含Open,Close的实现,否则就要是抽象类
}
以后用的时候可以直接使用
IBox box = new MyBox();
算了。其他的不说了。看书去吧。
[解决办法]
MSDN讲的很详细的!!
帮你顶!!
[解决办法]
接口,多态,多线程不应该归结到C#中,那是面向对象的基本的东西,
委托其实说白的就是一个安全的函数入口指针,不同的是委托是由对象实现的,更安全灵活,类似于函数的回调,至于回调的作用就不用多说了吧?
泛型就像C++的模板......
[解决办法]
我还不知道MSDN地址,谁能告诉我,谢谢
[解决办法]
msdn.microsoft.com?
[解决办法]
慢慢领会中.....关注......
[解决办法]
上cnblog那里搜索.这些关键字.会有很多答案的
[解决办法]
占位晚点聊
[解决办法]
接口是为了规范,比如想让自己的类可以被枚举,就得实现IEnumerator接口的两个方法和一个属性。(跟泛型的限制条件结合看看就理解了)
委托就是封装好的函数指针,可以实现动态调用函数,遇到几个例子就明白了
多态这个要是至今还不理解的话是不是可以考虑转行了??
多线程是为了持续相应,比如进度条功能,比如文件检索功能。
泛型是为了提高安全性和可重用性,比如03只有arraylist,每次用到都要先转换类型。05新增了list<>,可以控制类型,直接用就可以。
[解决办法]
c language specification 介绍的很详细
[解决办法]
帮助文档里有,不过我还是建议找例子,然后一个一个运行过去,这样你才能真的了解
[解决办法]
下班了,回去聊,我也不是很懂这些,学习ing
[解决办法]
结帖吧 !
[解决办法]
http://lokcore.com/sunny/article.asp?id=7
[解决办法]
msdn里面很详细啊
而且你要在实践中使用才可以体会得到其中的奥秘
[解决办法]
别人说的和你看到的是一回事,都是一样的,自己边用边总结最好了
[解决办法]
具体问题具体分析
[解决办法]
严重帮顶,,,,
其实还是要去看例子才能了解
我比较欣赏楼主,,
学习程序就是要知道这些到底是有什么用处,什么时候用,
[解决办法]
学习……
[解决办法]
关键是要实践,看书只是理论上的知识
看得懂和会做是两回事
这些知识,一般教程上都有讲
可看看《.net 面向对象编程揭秘》或练习《程序天下 C#2.0》
[解决办法]
我也是个菜鸟,知道一点,
多态:通常只有被override关键字修饰的才可以实现多态
被new关键字修饰的则不支持多态
[解决办法]
继承vitual类的内容可以被override也可以被new
而继承自abstract只能被override
也就是说vitual类的子类可能支持多态,也可能不支持
而abstract类的子类一定支持多态
我也是菜鸟,希望没有弄错
[解决办法]
接口:感觉就是个特殊的抽象类,喝普通的抽象类相比区别就是里面不能有任何已实现的方法
设置接口的好处感觉就是1.变相的实现多继承
2.为程序提供统一的编写规范(继承了同一接口的类都必须实现该接口中所有的方法)
[解决办法]
接口、委托、多态、多线程、泛型
接口:提供了一个契约,描述了一类事物的共性
比如Array的Sort方法,要对集合中的元素排序,但是只有那些能够比较大小的数据才能排序,所以如果传入的是
Point[],它就不能工作,因为Point无法比较大小,怎样约束对象能够比较大小呢?我们就需要使用接口IComparable或者IComparer,因为它们提供了一个契约,保证对象肯定能够比较大下,因为这些对象既然实现了接口,就必然拥有接口规定的方法:CompareTo或者Compare
如果你使用的是VS2008,会发现很多类,比如Array,List,string都有很多扩展方法,为什么呢?因为它们实现了IEnumerable接口,所以就“享受”了为这个接口定义的扩展方法了
委托:用于回调函数,是事件的基础
还是以上例来说,我们对数据排序,可以用很多方法,比如对于string,我们可以使用默认的方式,但也可以自定义,比如按字符串的长度来排序,Sort方法有一个重载形式Sort(T[],Comparision),第二个参数就是一个委托,我们可以自定义回调函数,实现自定义排序:
string[]arr="if else switch case".Split();
Array.Sort(arr,MyRule);//当然,现在一般用Lamda表达了
int MyRule(string first,string second)
{
return first.Length.CompareTo(second.Length);
}
后面几个概念在c++中就广泛使用了
[解决办法]
关注!
[解决办法]
mark
[解决办法]
to:看了 N本C#的书, M个C#的例子, X个帖子 还是没弄清楚以下问题,或者说似懂非懂.
再看N本书你也不懂,一定要自己上手写程序才行,在实践过程中你自己就慢慢领悟了
[解决办法]
我有和楼主一样的困惑~~~
[解决办法]
呵呵,这些东西,当你用过之后,过一段时间再沉淀一下,就会非常理解
[解决办法]
网上搜一下那个 人,猫,老鼠 的那个实例
就是用委托,事件实现响应的
虽然简单,但是感觉还可以!!
[解决办法]
http://www.sula.cn
去这里看看,虽然资料比较少,但这些问题,我以前也遇到过,希望对你有帮助。
应该会有些遗迹留下
[解决办法]
这个网站里面有很多:http://www.qqview.com/Dev/Spe9_4.html类似的.
[解决办法]