91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#簡單工廠模式(文件案例)

發布時間:2020-06-20 22:39:31 來源:網絡 閱讀:717 作者:賀曉冬 欄目:編程語言

C#簡單工廠模式(文件案例)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 讀文件案例
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入文件名");
            string fileName = Console.ReadLine();//獲得用戶輸入
            File file = Factory.GetFileName(fileName);
            file.OpenFile();
            Console.ReadKey();
        }
    }
    /// <summary>
    /// 父類,等待子類實現
    /// </summary>
    public abstract class File
    {
        private string _fileName;//文件名
        public string FileName
        {
            get { return _fileName; }
            set { _fileName = value; }
        }
        private string _extension;//后綴名
        public string Extension
        {
            get { return _extension; }
            set { _extension = value; }
        }
        /// <summary>
        /// 構造函數
        /// </summary>
        /// <param name="fileName"></param>
        public File(string fileName)
        {
            //在本類中,用私有字段即可,不必要使用屬性來保護對應的字段
            this._fileName = Path.GetFileNameWithoutExtension(fileName);
            this._extension = Path.GetExtension(fileName);
        }
        public abstract void OpenFile();
    }
    public class TxtFile : File
    {
        /// <summary>
        /// 子類構造函數,調用父類構造函數為字段賦值
        /// </summary>
        /// <param name="fileName"></param>
        public TxtFile(string fileName)
            : base(fileName)
        { }
        public override void OpenFile()
        {
            //此時就需要用屬性來保護字段了
            Console.WriteLine("文件名為{0},后綴名為{1}", this.FileName, this.Extension);
        }
    }
    public class AviFile : File
    {
        public AviFile(string fileName)
            : base(fileName)
        { }
        public override void OpenFile()
        {
            Console.WriteLine("文件名為{0},后綴名為{1}", this.FileName, this.Extension);
        }
    }
    public class Factory
    {
        public static File GetFileName(string fileName)
        {
            File file = null;
            switch (Path.GetExtension(fileName).ToLower())
            {
                case "txt":
                case ".txt": file = new TxtFile(fileName); break;
                case "avi":
                case ".avi": file = new AviFile(fileName); break;
                //父類是虛方法的寫法
                //case "txt":
                //case ".txt": return new TxtFile(fileName);
                //default: return new File(fileName);
            }
            return file;
        }
    }
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夹江县| 美姑县| 麻栗坡县| 三台县| 和林格尔县| 山西省| 石首市| 苍溪县| 岳池县| 邮箱| 澄江县| 五峰| 麟游县| 韶关市| 湘乡市| 鄂伦春自治旗| 乌鲁木齐县| 昭觉县| 香格里拉县| 黑山县| 会同县| 汾阳市| 叶城县| 义马市| 铜梁县| 西宁市| 虹口区| 宜都市| 温泉县| 太白县| 靖江市| 上林县| 新巴尔虎右旗| 弥渡县| 荔波县| 泉州市| 平武县| 增城市| 江永县| 海城市| 无极县|