C#對象為Null模式(Null Object Pattern)實例教程
本文以實例形式簡單講述了C#對象為Null模式(Null Object Pattern),分享給大家供大家參考。具體實現(xiàn)方法如下:
所謂的"對象為Null模式",就是要求開發(fā)者考慮對象為Null的情況,并設計出在這種情況下的應對方法。
以前面"C#策略模式(Strategy Pattern) "一文中的例子來說,在我們的客戶端程序中只考慮了用戶輸入1,2,3的情況,如果用戶輸入其它數(shù)字,比如4,就沒有一個對應的IBall接口實現(xiàn)類實例產(chǎn)生,于是會報如下的錯:

為了應對這種情況,我們專門設計一個類,當用戶輸入1,2,3以上的數(shù)字,就產(chǎn)生該類的實例。該類同樣實現(xiàn)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以外的數(shù)字,就創(chuàng)建一個同樣實現(xiàn)IBall接口、專門處理Null的類實例。

相信本文所述實例對大家C#程序設計的學習有一定的借鑒價值。
相關文章
C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管)
這篇文章主要介紹了C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
C#中的ICustomFormatter及IFormatProvider接口用法揭秘
這篇文章主要介紹了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能過分析一段代碼得出一些研究結果,需要的朋友可以參考下2015-06-06
c#實現(xiàn)把漢字轉(zhuǎn)為帶田字格背景的jpg圖片
這篇文章主要介紹了c#實現(xiàn)把漢字轉(zhuǎn)為帶田字格背景的jpg圖片示例,需要的朋友可以參考下2014-03-03
C#正則表達式分解和轉(zhuǎn)換IP地址實例(C#正則表達式大全 c#正則表達式語法)
這是我發(fā)了不少時間整理的C#的正則表達式,新手朋友注意一定要手冊一下哦,這樣可以節(jié)省很多寫代碼的時間。下面進行了簡單總結2013-12-12
WindowsForm實現(xiàn)TextBox占位符Placeholder提示功能
這篇文章主要介紹了WindowsForm實現(xiàn)TextBox占位符Placeholder提示,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

