C#知识总结

来源:互联网 发布:chemdraw mac 编辑:程序博客网 时间:2024/04/28 03:14

1.C#与C++有什么区别?

    区别很多。首先是托管与非托管的区别。托管代码不允许进行对内存的操作,而是由固定的垃圾回收机制来完成,而C++则不然。其次C#和Java类似,都是运行在虚拟机上的(分别是.NET虚拟机和Java虚拟机),而C++不需要这样一个平台。最后C#是完全面向对象的。在C#里,万物皆是类,绝对不存在一个超越类以上的函数或变量。C++也是面向对象的,但其仍然保留面向过程语言的特点(比如C++存在全局变量)。最后,C#摒弃了C++中的多重继承等不易掌握的特点,代之以接口,使编程变得更加轻松和简捷。

2.一个类可以实现多个接口,接口类似于纯虚类。

3.请用设计模式观点描述先有鸡还是有蛋?

 

using System; class Client {        static void Main(string[] args)        {            hen jiji = new hen();            egg dan = new egg();            jiji.d = dan;            Console.WriteLine(jiji.d.m);            Console.ReadKey();        }        class hen        {            public int n = 9;            public egg d;        }        class egg : hen        {            public int m = 10;        }    }
"先有鸡还是先有蛋"问题只是对面向对象本质的一个理解,将人类的自然语言放在此处来理解并不合适。。由下图可知,根本不存在鸡和蛋的问题,而是型与值的问题,以及指针引用的问题,因为鸡和蛋两个对象间是“引用”关系而不是“包含”关系。

4.把业务逻辑放在服务器上要怎么实现?

  通过实现映射数据库的关系,其业务逻辑在中间服务器层实现,减轻了数据库服务器的压力,有利于负载均衡。客户端通过HTTP,SOAP,Remoting等方式访问。

5.类与类中间的通信如何实现?

  可以采取Window消息机制,或者共享空间及管道连接等方式实现类与类之间的通信。