易截截图软件、单文件、免安装、纯绿色、仅160KB

C#面试笔试小贴士 2

对于多态,还必需提一个C#中的关键字:new。前面提到,对于virtual方法,JIT会确定实例的实际类型然后决定调用什么方法。但是如果派生类中new关键字修饰方法,则它向CLR澄清此派生类中的方法与基类中的方法毫无关系,以下代码最终调用是基类的introduce方法:
Code
class Program
{
    static void Main(string[] args)
     {
         Sample1.M1(new OrdinaryPeople("ZhangSan"));
         Sample1.M1(new Superman("Hancock"));
         Console.Read();
     }
}
class Sample1
{
    public static void M1(Person p)
     {
         p.Introdce();
     }
}
class Person
{
    protected string mName;
    public Person(string pName)
     {
        this.mName = pName;
     }
    public virtual void Introdce()
     {
         Console.WriteLine("Hello,I am " + this.mName);
     }
}
class OrdinaryPeople : Person
{
    public OrdinaryPeople(string pName)
         : base(pName)
     {
     }
    public new void Introdce()
     {
         Console.WriteLine("Hello,I am an ordinary person," + this.mName);
     }
}
class Superman : Person
{
    public Superman(string pName)
         : base(pName)
     {
     }
    public new void Introdce()
   &


相关文档:

C#事件(event)解析

      事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于 ......

浅析工厂模式(C#)

我以为,在所有模式中,最简单、最常用的就是工厂模式了(包括抽象工厂)。
工厂模式和抽象模式的区别在于,工厂模式是通过参数(一般叫型别码)来动态生成对象,而抽象工厂必须了解上下文才能调用相应的对象。实例代码如下:
一、工厂模式
public class Factory
{
public static object Create(int type)
{ ......

C#扫描计算机端口

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace PortScanner
{
class Program
{
 //已扫描端口数目
 internal static int scannedCount = 0;
 //正在运行的线程数目
 internal static int ru ......

C# DllImport的用法

大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。
DllImport所在的名字空间 using System.Runtime.Inte ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号