C#对象为Null模式(Null Object Pattern)实例教程

 更新时间:2014年09月12日 14:55:22   投稿:shichen2014  
这篇文章主要介绍了C#对象为Null模式(Null Object Pattern),以一个简单实例深入分析了C#为Null情况下的处理方法,需要的朋友可以参考下

本文以实例形式简单讲述了C#对象为Null模式(Null Object Pattern),分享给大家供大家参考。具体实现方法如下:

所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法。

以前面"C#策略模式(Strategy Pattern) "一文中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接口实现类实例产生,于是会报如下的错:

为了应对这种情况,我们专门设计一个类,当用户输入1,2,3以上的数字,就产生该类的实例。该类同样实现IBall接口。

public class Others : IBall
{
    public void Play()
    {
      Console.WriteLine("您选择的球类项目目前还不存在~~");
    }
}

在客户端程序中,修改为:

class Program
{
    static void Main(string[] args)
    {
      IBall ball = null;
      SportsMan man = new SportsMan();
      while (true)
      {
        Console.WriteLine("选择你喜欢的球类项目(1=足球, 2=篮球,3=排球)");
        string input = Console.ReadLine();
        switch (input)
        {
          case "1":
            ball = new Football();
            break;
          case "2":
            ball = new Basketball();
            break;
          case "3":
            ball = new Volleyball();
            break;
          default:
            ball = new Others();
            break;
        }
        man.SetHobby(ball);
        man.StartPlay();
      }
    }
}

以上,在swich语句中的default部分,当用户输入1,2,3以外的数字,就创建一个同样实现IBall接口、专门处理Null的类实例。      

相信本文所述实例对大家C#程序设计的学习有一定的借鉴价值。

相关文章

  • c#文件的I/O基本操作

    c#文件的I/O基本操作

    System.IO命名空间包含允许在数据流和文件上进行同步,异步及写入的类型,下面是关于c#文件的I/O基本操作讲解,需要的朋友可以参考下
    2014-03-03
  • c#数据绑定之linq使用示例

    c#数据绑定之linq使用示例

    本实例以MS AdventureWorks2008Entities数据库为基础,演示了LINQ TO ENTITY、LINQ TO ENTITYSQL和LINQ TO ENTITYCLIENT。
    2014-04-04
  • C#中volatile与lock用法

    C#中volatile与lock用法

    这篇文章主要介绍了C#中volatile与lock用法,较为详细的分析了C#中volatile与lock的适用情况及用法实例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • C#实现装箱与拆箱操作简单实例

    C#实现装箱与拆箱操作简单实例

    这篇文章主要介绍了C#实现装箱与拆箱操作,对于新手理解装箱与拆箱有一定的帮助,需要的朋友可以参考下
    2014-07-07
  • C# CheckedListBox控件的用法总结

    C# CheckedListBox控件的用法总结

    本篇文章主要介绍了C# CheckedListBox控件的用法总结,想要学习CheckedListBox的同学可以了解一下。
    2016-12-12
  • C#生成随机验证码代码分享

    C#生成随机验证码代码分享

    这篇文章主要分享了C#生成随机验证码代码,另外附上使用示例,非常的简单实用,有需要的朋友可以参考下
    2014-10-10
  • C#如何给PDF文件添加水印

    C#如何给PDF文件添加水印

    这篇文章主要为大家详细介绍了C#如何给PDF文件添加水印的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Unity ScrollView实现无限循环效果

    Unity ScrollView实现无限循环效果

    这篇文章主要为大家详细介绍了Unity ScrollView实现无限循环效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#中如何获取当前目录和上级目录

    C#中如何获取当前目录和上级目录

    这篇文章主要介绍了C#中如何获取当前目录和上级目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C#折线图控件使用方法详解

    C#折线图控件使用方法详解

    这篇文章主要为大家详细介绍了C#折线图控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论