C#中Builder生成器模式解决配置电脑的问题详解

这篇文章主要介绍了c#设计模式之builder生成器模式解决带老婆配置电脑问题,简单介绍了生成器模式的概念、功能并结合具体实例形式分析了c#生成器模式解决配电脑问题的步骤与相关操作技巧,需要的朋友可以参考下

本文实例讲述了C#设计模式之Builder生成器模式解决带老婆配置电脑问题。分享给大家供大家参考,具体如下:

一、理论定义

生成器模式 又叫:建造者模式,它  可以 把一个 复杂的对象,分步骤创建。

二、应用举例

需求描述:话说发工资了,打算去岗顶百脑汇  给老婆配置一台电脑。
OK,坐着BRT,就出发了。
到岗顶,一美女扑面而来,面带微笑:先生,请问看中那个品牌,过来看一下嘛!
人家都开口了,盛情难却,就看下吧。

三、具体编码

1.CPU

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// CPU  ///   public class CPU  {    ///     /// CPU品牌    ///     public string Brand { get; set; }    ///     /// CPU系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

2.主板

主板MotherBoard

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 主板  ///   public class MotherBoard  {    ///     /// 主板品牌    ///     public string Brand { get; set; }    ///     /// 主板系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

3.内存条

内存条Memory

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// Memory  ///   public class Memory  {    ///     /// Memory品牌    ///     public string Brand { get; set; }    ///     /// Memory系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

4.硬盘

硬盘HardDisk

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// HardDisk  ///   public class HardDisk  {    ///     /// HardDisk品牌    ///     public string Brand { get; set; }    ///     /// HardDisk系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

5.显卡

显卡GraphicCard

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   ///显卡 GraphicCard  ///   public class GraphicCard  {    ///     /// 显卡GraphicCard品牌    ///     public string Brand { get; set; }    ///     /// 显卡GraphicCard系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

6.显示器

显示器Display

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// Display  ///   public class Display  {    ///     /// 显示器品牌    ///     public string Brand { get; set; }   ///    /// 系列名   ///    public string SerialsName { get; set; }    //其他属性...........  }}

7.音箱

音箱Speakers

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 音箱Speakers  ///   public class Speakers  {    ///     /// Speakers品牌    ///     public string Brand { get; set; }    ///     /// Speakers系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

8.键盘

键盘Keyboard

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 键盘Keyboard  ///   public class Keyboard  {    ///     /// Keyboard品牌    ///     public string Brand { get; set; }    ///     /// 键盘Keyboard系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

9.鼠标

鼠标Mouse

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 鼠标Mouse  ///   public class Mouse  {    ///     /// Mouse品牌    ///     public string Brand { get; set; }    ///     /// 鼠标Mouse系列名    ///     public string SerialsName { get; set; }    //其他属性...........  }}

10.电脑配置单Config

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  public class Config  {    ///     /// CPU    ///     public CPU CPU { get; set; }    ///     /// 显示器    ///     public Display Display { get; set; }    ///     /// 主板    ///     public MotherBoard MotherBoard { get; set; }    ///     /// 内存条    ///     public Memory Memory { get; set; }    ///     /// 硬盘    ///     public HardDisk HardDisk { get; set; }    ///     /// 显卡    ///     public GraphicCard GraphicCard { get; set; }    ///     /// 音箱    ///     public Speakers Speakers { get; set; }    ///     /// 键盘    ///     public Keyboard Keyboard { get; set; }    ///     /// 鼠标    ///     public Mouse Mouse { get; set; }  }}

11.一台电脑Computer

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 电脑  ///   public class Computer  {    ///     /// CPU    ///     public CPU CPU { get; set; }    ///     /// 显示器    ///     public Display Display { get; set; }     ///     /// 主板    ///     public MotherBoard MotherBoard { get; set; }    ///     /// 内存条    ///     public Memory Memory { get; set; }    ///     /// 硬盘    ///     public HardDisk HardDisk { get; set; }    ///     /// 显卡    ///     public GraphicCard GraphicCard { get; set; }    ///     /// 音箱    ///     public Speakers Speakers { get; set; }    ///     /// 键盘    ///     public Keyboard Keyboard { get; set; }    ///     /// 鼠标    ///     public Mouse Mouse { get; set; }    ///     /// 电脑品牌厂商    ///     public Manufactures Manufactures { get; set; }    ///     /// 属于的系列    ///     public string Serials{ get; set; }    ///     /// 显示电脑配置    ///     public void ShowConfig()    {      Console.WriteLine(Manufactures +"t"+ Serials+"  系列的配置如下:");      Console.WriteLine("--------------------------------------------------");      Console.WriteLine("配件   品牌t   系列");      Console.WriteLine("CPU   " + CPU.Brand + "t " + CPU.SerialsName + "系列");      Console.WriteLine("主板   " + MotherBoard.Brand + "t " + MotherBoard.SerialsName + "系列");      Console.WriteLine("内存条  " + Memory.Brand + "t " + Memory.SerialsName + "系列");      Console.WriteLine("硬盘   " + HardDisk.Brand + "t " + HardDisk.SerialsName + "系列");      Console.WriteLine("显卡   " + GraphicCard.Brand + "t " + GraphicCard.SerialsName + "系列");      Console.WriteLine("显示器  " + Display.Brand + "t " + Display.SerialsName + "系列");      Console.WriteLine("音箱   " + Speakers.Brand + "t " + Speakers.SerialsName + "系列");      Console.WriteLine("键盘   " + Keyboard.Brand + "t " + Keyboard.SerialsName + "系列");      Console.WriteLine("鼠标   " + Mouse.Brand + "t " + Mouse.SerialsName + "系列");      Console.WriteLine(); Console.WriteLine();    }  }}

12.某一品牌 某一系列 产品的 具体配置

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Com.Design.Gof.Builder.Factory;namespace Com.Design.Gof.Builder{  ///   /// 某一个产品的配置  ///   public class SerialsModel  {    private Config cfg = null;    ///     /// 获取电脑配置单    ///     ///     ///     public SerialsModel(Manufactures Manufactures, string SerialsName)    {      cfg= ConfigFactory.GetConfig(Manufactures, SerialsName);    }    ///     /// 具体配置,每个产品系列都有对应的产品配置单    ///     public Config Cfg    {      get { return cfg; }    }  }}

13.电脑配置单,读取的是XML文件,一共有三个测试文件,联想ThinkPad.xml,三星.xml,索尼.xml,下面只显示联想,其他的随附件下载

      Intel 酷睿 i5 2320    华硕 H61系列   金士顿 XXXX   希捷1TB 7200转,SATA2   华硕显卡XXXX   联想显示器XXXX   联想XXXX   联想键盘XXXX   微软鼠标XXXX         Intel 酷睿i5 2450M    华硕 H61系列   金士顿 XXXX   希捷500G XXXX   华硕显卡XXXX   LG显示器XXXX   漫步者XXXX   微软键盘XXXX   罗技鼠标XXXX         Intel 酷睿i5 2450M    华硕 H61系列   金士顿 XXXX   希捷500G XXXX   华硕显卡XXXX   LG显示器XXXX   漫步者XXXX   微软键盘XXXX   长城鼠标XXXX   

14.一个专门负责获取电脑 配置单的 简单工具类

using System;using System.Collections.Generic;using System.Linq;using System.Xml.Linq;using System.Xml.XPath;using System.Text;using Com.Design.Gof.Builder;using System.Xml;using System.IO;namespace Com.Design.Gof.Builder.Factory{  public class ConfigFactory  {    ///     /// 获取电脑配置单    ///     /// 电脑厂商    /// 指定系列    ///     public static Config GetConfig(Manufactures manufactures, string SerialName) {      Config cfg = new Config();      //从XML文件,加载电脑配置单      XDocument doc = XDocument.Parse(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"BuilderData" + manufactures + ".xml"));      XPathNavigator nav=doc.CreateNavigator();      XPathNavigator n=nav.SelectSingleNode("/products/product[@Serials='" + SerialName.Trim() + "']");      n.MoveToChild("config","");      if (n == null) {        return cfg;      }      string Brand = string.Empty, Serials = string.Empty;      //CPU      n.MoveToChild("cpu", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.CPU = new CPU { Brand = Brand, SerialsName = Serials };      //主板MotherBoard      n.MoveToNext("MotherBoard","");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.MotherBoard = new MotherBoard { Brand = Brand, SerialsName = Serials };      //内存Memory      n.MoveToNext("Memory", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Memory = new Memory { Brand = Brand, SerialsName = Serials };      //硬盘HardDisk      n.MoveToNext("HardDisk", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.HardDisk = new HardDisk { Brand = Brand, SerialsName = Serials };      //显卡GraphicCard      n.MoveToNext("GraphicCard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.GraphicCard = new GraphicCard { Brand = Brand, SerialsName = Serials };      //显示器Display      n.MoveToNext("Display", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Display = new Display { Brand = Brand, SerialsName = Serials };      //音箱Speakers      n.MoveToNext("MotherBoard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Speakers = new Speakers { Brand = Brand, SerialsName = Serials };      //键盘Keyboard      n.MoveToNext("Keyboard", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Keyboard = new Keyboard { Brand = Brand, SerialsName = Serials };      //鼠标MotherBoard      n.MoveToNext("Mouse", "");      Brand = n.GetAttribute("Brand", "");      Serials = n.Value;      cfg.Mouse = new Mouse { Brand = Brand, SerialsName = Serials };      return cfg;    }  }}

15.一个接口,定义了如何构建一个电脑

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  public interface IBuilder  {    ///     /// CPU    ///     void BuilderCPU(CPU cpu);    ///     /// 主板    ///     void BuilderMotherBoard(MotherBoard motherBoard);    ///     /// 显示器    ///     void BuilderDisplay(Display display);    ///     /// 内存条    ///     void BuilderMemory(Memory memory);    ///     /// 硬盘    ///     void BuilderHardDisk(HardDisk hardDisk);    ///     /// 显卡    ///     void BuilderGraphicCard(GraphicCard graphicCard);    ///     /// 音箱    ///     void BuilderSpeakers(Speakers speakers);    ///     /// 键盘    ///     void BuilderKeyboard(Keyboard keyboard);    ///     /// 鼠标    ///     void BuilderMouse(Mouse mouse);    ///     /// 获取组装好的电脑    ///     ///     Computer GetComputer();  }}

16.联想电脑

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// ThinkPad品牌厂商  ///   public class ThinkPad:IBuilder  {    Computer computer = null;//电脑    SerialsModel Serials = null;//某个产品系列的具体产品    public ThinkPad(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 装配电脑    ///     /// 1.组装 CPU    ///     ///     public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    ///     /// 2.组装 主板    ///     ///     public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    ///     /// 3.组装 内存条    ///     ///     public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    ///     ///4.组装 硬盘    ///     ///     public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    ///     /// 5.组装 显卡    ///     ///     public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    ///     /// 6.组装 显示器    ///     ///     public void BuilderDisplay(Display display)    {      computer.Display = display;    }    ///     /// 7.组装 音箱    ///     ///     public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    ///     /// 8.组装 键盘    ///     ///     public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    ///     /// 9.组装 鼠标    ///     ///     public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    ///     /// 获取组装后的电脑    ///     ///     public Computer GetComputer() {      //步骤1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步骤2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步骤3--内存条      BuilderMemory(Serials.Cfg.Memory);      //步骤4--硬盘      BuilderHardDisk(Serials.Cfg.HardDisk);      //步骤5--显卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步骤6--显示器      BuilderDisplay(Serials.Cfg.Display);      //步骤7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步骤8--键盘      BuilderKeyboard(Serials.Cfg.Keyboard);      //步骤9--鼠标      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}

17.索尼电脑

Sony

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// Sony索尼品牌厂商  ///   public class Sony:IBuilder  {    Computer computer = null;//电脑    SerialsModel Serials = null;//某个产品系列的具体产品    public Sony(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 装配电脑    ///     /// 1.组装 CPU    ///     ///     public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    ///     /// 2.组装 主板    ///     ///     public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    ///     /// 3.组装 内存条    ///     ///     public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    ///     ///4.组装 硬盘    ///     ///     public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    ///     /// 5.组装 显卡    ///     ///     public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    ///     /// 6.组装 显示器    ///     ///     public void BuilderDisplay(Display display)    {      computer.Display = display;    }    ///     /// 7.组装 音箱    ///     ///     public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    ///     /// 8.组装 键盘    ///     ///     public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    ///     /// 9.组装 鼠标    ///     ///     public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    ///     /// 获取组装后的电脑    ///     ///     public Computer GetComputer() {      //步骤1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步骤2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步骤3--内存条      BuilderMemory(Serials.Cfg.Memory);      //步骤4--硬盘      BuilderHardDisk(Serials.Cfg.HardDisk);      //步骤5--显卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步骤6--显示器      BuilderDisplay(Serials.Cfg.Display);      //步骤7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步骤8--键盘      BuilderKeyboard(Serials.Cfg.Keyboard);      //步骤9--鼠标      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}

18.三星电脑

三星

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// Samsung索尼品牌厂商  ///   public class Samsung:IBuilder  {    Computer computer = null;//电脑    SerialsModel Serials = null;//某个产品系列的具体产品    public Samsung(Manufactures Manufactures, string SerialsName)    {      computer = new Computer { Manufactures = Manufactures, Serials = SerialsName };      Serials = new SerialsModel(Manufactures, SerialsName);    }    #region 装配电脑    ///     /// 1.组装 CPU    ///     ///     public void BuilderCPU(CPU cpu)    {      computer.CPU = cpu;    }    ///     /// 2.组装 主板    ///     ///     public void BuilderMotherBoard(MotherBoard motherBoard)    {      computer.MotherBoard = motherBoard;    }    ///     /// 3.组装 内存条    ///     ///     public void BuilderMemory(Memory memory)    {      computer.Memory = memory;    }    ///     ///4.组装 硬盘    ///     ///     public void BuilderHardDisk(HardDisk hardDisk)    {      computer.HardDisk = hardDisk;    }    ///     /// 5.组装 显卡    ///     ///     public void BuilderGraphicCard(GraphicCard graphicCard)    {      computer.GraphicCard = graphicCard;    }    ///     /// 6.组装 显示器    ///     ///     public void BuilderDisplay(Display display)    {      computer.Display = display;    }    ///     /// 7.组装 音箱    ///     ///     public void BuilderSpeakers(Speakers speakers)    {      computer.Speakers = speakers;    }    ///     /// 8.组装 键盘    ///     ///     public void BuilderKeyboard(Keyboard keyboard)    {      computer.Keyboard = keyboard;    }    ///     /// 9.组装 鼠标    ///     ///     public void BuilderMouse(Mouse mouse)    {      computer.Mouse = mouse;    }    #endregion    ///     /// 获取组装后的电脑    ///     ///     public Computer GetComputer() {      //步骤1--CPU      BuilderCPU(Serials.Cfg.CPU);      //步骤2---主板      BuilderMotherBoard(Serials.Cfg.MotherBoard);      //步骤3--内存条      BuilderMemory(Serials.Cfg.Memory);      //步骤4--硬盘      BuilderHardDisk(Serials.Cfg.HardDisk);      //步骤5--显卡      BuilderGraphicCard(Serials.Cfg.GraphicCard);      //步骤6--显示器      BuilderDisplay(Serials.Cfg.Display);      //步骤7--音箱      BuilderSpeakers(Serials.Cfg.Speakers);      //步骤8--键盘      BuilderKeyboard(Serials.Cfg.Keyboard);      //步骤9--鼠标      BuilderMouse(Serials.Cfg.Mouse);      return computer;    }  }}

19.美女销售员,指导我们买电脑

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Com.Design.Gof.Builder{  ///   /// 电脑厂家,销售员指导 消费者 要购买那个 品牌 的电脑  ///   public enum Manufactures  {    Acer宏碁=1, Alienware=2,长城=3,    戴尔=4, 东芝=5, 典籍=6, 多彩=7,    DCMOFA=8,ESER宇朔=9,富士通=10,     方正=11,Gateway华硕=12, 惠普=13,    海尔=14, 瀚斯宝丽=15,Intel=16,    技嘉=17,联想=18, 联想ThinkPad=19,    雷蛇=20, LG=21, 镭波=22,    msi微星=23, 明唐=24,NEC=25,    苹果=26,清华=27,同方=28,     七喜=29, 七彩虹=30,神舟=31,    索尼=32, 三星=33, 松下=34,    史密斯=35, 索泰=36, 神酷=37,    TerransForce=38,微软=39, 万利达=40,    新蓝=41,优派=42  }  public class Salesman  {    ///     /// 电脑配置    ///     public void ShowConfig()    {      Builder.GetComputer().ShowConfig();    }    ///     /// 制造商    ///     public IBuilder Builder { get; set; }   }}

20.主函数调用

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Com.Design.Gof.Builder;namespace Com.Design.Gof.Test{  class Program  {    static void Main(string[] args)    {      //这位先生,请问你看中哪个型号?这边来看下吧!      Salesman salesman = new Salesman();      //美女介绍的  第一台电脑      salesman.Builder = new ThinkPad(Manufactures.联想ThinkPad, "联想IdeaCentre K330");      salesman.ShowConfig();  //电脑配置      //第二台电脑      salesman.Builder = new Sony(Manufactures.索尼, "索尼E14A17ECW");      salesman.ShowConfig();  //电脑配置      //第三台电脑      salesman.Builder = new Samsung(Manufactures.三星, "三星300E4A-S0G");      salesman.ShowConfig();  //电脑配置      Console.ReadKey();    }  }}

21.运行结果

C#中Builder生成器模式解决配置电脑的问题详解

22.总结

本来想把每个电脑配件再细化,发现工程很大,电脑 产品的属性很多,所以只列出2个字段。

附件里面包括了程序源码。也包括其他项目的测试,有控制台,有web。

以上就是C#中Builder生成器模式解决配置电脑的问题详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 08:24:26
下一篇 2025年12月8日 00:03:06

相关推荐

  • C#实现Json序列化删除null值的方法实例

    要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉,怎么处理呢?其实方法很简单的,下面就跟随本站小编一起学习c#中 json 序列化去掉null值的方法吧 要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉。 在这里我使用New…

    好文分享 2025年12月17日
    000
  • C#中发送邮件的实现方法详解

    这篇文章主要为大家详细介绍了c#实现发送邮件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 #region 发送邮件部分 private static String fromMail = “1111@12…

    好文分享 2025年12月17日
    000
  • 比较C#中值类型和引用类型的区别

    clr支持两种类型:值类型和引用类型,看起来fcl的大多数类型是引用类型,但用的最多的还是值类型。引用类型总是从托管堆中分配,在用new操作符实例一个对象,返回对象内存地址存放在一个变量中。在使用引用类型时要了解其四个心理因素:        1.内存必须从托管堆中分配        2.堆上分配的…

    好文分享 2025年12月17日
    000
  • 介绍C#中的堆和栈

    1、什么是堆?     堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据对象;   堆的特征:     1、堆里面的内存能够以任意顺序存入和移除;     2、不能显示地删除程序在堆里面保存的数据;     3、靠clr的自动gc(垃圾收集器)判断并自动清除无主的堆对象,然后释放它; …

    好文分享 2025年12月17日
    000
  • C#制作ActiveX控件中如何调用海康SDK的问题解决

      这个事情就是一个坑,耽误了两周时间,之前并没有做过activex这玩意,现在客户需求如此,只能说是在网上看着教程做了。   事情是这样的,有一台海康威视的摄像头,客户需要一个ActiveX控件嵌入到网页中,通过点击按钮开始录制和结束录制来进行视频的录制和保存,关于海康摄像头的二次开发在此就不多说…

    2025年12月17日 好文分享
    000
  • C#中匿名对象与var以及动态类型 dynamic的详解

    随着c#的发展,该语言内容不断丰富,开发变得更加方便快捷,c# 的锋利尽显无疑。c# 语言从诞生起就是强类型语言,这一性质到今天不曾改变,我想以后也不会变。既然是强类型语言,那编写任一程序均要求满足下面的基本条件: 1、变量声明必须指明其类型 2、变量类型明确后,其类型在Runtime亦不能改变 代…

    2025年12月17日
    000
  • 比较C#和JAVA中面向对象语法的区别

    面向对象是一种开发思想,最应该记住的一句话是万物皆对象。为了让程序更好的被理解和编写,把现实生活中描述事物的方式和思路融合进入,就成了面向对象的思想。把生活中的事物融合进程序中那么就需要描述,描述分为特征和行为两方面,而不同类别的对象特征和行为具有巨大的差异,为了更好的制定描述每一类事物的方式,那么…

    好文分享 2025年12月17日
    000
  • C#/.NET易错的几点

    1 及时释放资源      clr托管环境扮演了垃圾回收的角色,所以你不需要显式释放已创建对象所占用的内存。但这不意味着你可以忽略所有的使用过的对象。许多对象封装了其 他类型的系统资源(例如,磁盘文件,数据连接,网络端口)。保持这些资源的使用状态会急剧的耗尽系统的资源,削弱性能并且最终导致程序出错。…

    好文分享 2025年12月17日
    000
  • 介绍C#中的接口

    对于很多初学者来说是个很容易迷糊的东西,使用起来很简单,无非就是定义接口,接口里面包含一些属性、索引器、事件和一些没有修饰符的方法,也没有方法的具体实现代码;然后在类中继承该接口,实现该接口中的所有属性、索引器、事件和方法的具体实现的代码(其实接口中只能这几个,一般我们用到的只有属性和方法所以在这里…

    好文分享 2025年12月17日
    000
  • 有关C#工厂模式简单讲解

    一、 简单工厂(simple factory)模式simple factory模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。 simple factory模式实际上不是gof 23个设计模式中的一员。二、 simple factory模式角色与…

    好文分享 2025年12月17日
    000
  • C#多线程之Semaphore的使用详解

    这篇文章主要为大家详细介绍了c#多线程之semaphore用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Semaphore:可理解为允许线程执行信号的池子,池子中放入多少个信号就允许多少线程同时执行。 private static void MultiThreadSynergicWithS…

    好文分享 2025年12月17日
    000
  • C#中关于逆变和协变的详解

    这篇文章主要为大家详细介绍了c#逆变与协变的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 该文章中使用了较多的 委托delegate和Lambda表达式,如果你并不熟悉这些,请查看我的文章《委托与匿名委托》、《匿名委托与Lambda表达式》以便帮你建立完整的知识体系。 在C#从诞生到发…

    2025年12月17日
    000
  • C#中关于匿名委托和Lambda表达式的使用详解

    这篇文章主要为大家详细介绍了c#匿名委托与lambda表达式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 通过使用匿名委托(匿名方法),使编程变得更加灵活,有关委托与匿名委托请参考我的前一篇Blog《委托与匿名委托》。 继续之前示例,代码如下: static void Main(st…

    好文分享 2025年12月17日
    000
  • C#中委托和匿名委托的具体介绍

    这篇文章主要为大家详细介绍了c#委托与匿名委托的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本来是想写一篇《委托与lambda表达式的前世今生》,但仅委托部分已经写了很多内容,于是就此分开关于Lambda表达是的内容后续再写吧。 不知道Lambda表达式是谁发明的,只记得第一次接触L…

    好文分享 2025年12月17日
    000
  • C#如何使用ILGenerator实现动态生成函数的实例

    这篇文章主要介绍了c#使用ilgenerator动态生成函数的简单代码,需要的朋友可以参考下 游戏服务器里面总是有一大堆的配置文件需要读取, 而且这些配置文件的读取: * 要不然做成弱类型的, 就是一堆字符串或者数字, 不能看出来错误(需要重新检测一次) * 要不然做成强类型的, 每种类型都需要自己…

    好文分享 2025年12月17日
    000
  • C#如何连接到sql server2008数据库的示例分享

    这篇文章主要介绍了c#连接到sql server2008数据库的实例代码,需要的朋友可以参考下 废话不多说了,直接给大家贴代码了,具体代码如下所示: namespace MyFirstApp{ class Program { static void Main(string[] args) { Sql…

    好文分享 2025年12月17日
    000
  • C#动态数据绘图graphic的实现方法介绍

    这篇文章主要介绍了c#实现动态数据绘图graphic的方法,结合实例形式分析了c#根据动态数据绘制2d数据表格的相关操作技巧,需要的朋友可以参考下 本文实例讲述了C#实现动态数据绘图graphic的方法。分享给大家供大家参考,具体如下: using System;using System.Colle…

    2025年12月17日
    000
  • C#如何实现loading提示控件简单的实例

    本文通过实例代码给大家介绍了c#实现简单的loading提示控件功能,代码非常简单,具有参考借鉴价值,需要的朋友参考下吧 自己画一个转圈圈的控件 using System;using System.Collections.Generic;using System.ComponentModel;usi…

    好文分享 2025年12月17日
    000
  • C#中Observer观察者模式如何解决牛顿童鞋成绩问题的方法

    这篇文章主要介绍了c#设计模式之observer观察者模式解决牛顿童鞋成绩问题,简单讲述了观察者模式的原理并结合具体实例形式分析了使用观察者模式解决牛顿童鞋成绩问题的具体步骤相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下 本文实例讲述了C#设计模式之Observer观察者模式解…

    2025年12月17日
    000
  • .NET Core2.0小技巧之MemoryCache问题修复解决的方法(图)

    这篇文章主要给大家介绍了关于.net core 2.0迁移小技巧之memorycache问题修复解决的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 前言 大家应该都知道,对于传统的.NET Framework项目而言…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信