![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
_非著名程序猿
这个作者很懒,什么都没留下…
展开
-
C#基础学习02(索引器、静态类)
索引器特点:数组属性只能根据下标(索引)来访问,索引器可以为任意类型 索引器可以被重载 可以使用更灵活的方式访问,定义访问方式索引器小例子Student类class Student{ //存放学生信息 private Hashtable names = new Hashtable(); //定义一个索引器,...原创 2019-04-27 11:33:22 · 603 阅读 · 0 评论 -
C#基础学习14(事件、反射)
一、事件1.事件是通过委托实现的,委托才是事件能正常执行的核心2.定义事件:使用Event关键字声明 public event MyDelegate MDL;3.事件帮我们做了两件事情: (1)创建一个对应的private的委托对象 (2)创建了一个“事件属性”(类似于蜀星的get和set),里面包含了add和remove方法4.事件对象只能用 “...原创 2019-06-15 15:47:15 · 216 阅读 · 0 评论 -
C#基础学习15(反射进阶:反射调用方法、反射写插件)
反射用到的命名空间:System.ReflectionSystem.TypeSystem.Reflection.Assembly一、反射调用方法例:class Program{ static void Main(string[] args) { //调用无参方法 Type m_type = typeof(Person);...原创 2019-06-15 15:47:57 · 502 阅读 · 1 评论 -
C#基础学习16(线程池、死锁)
一、线程池ThreadPool.SetMaxThreads(5,5);//设置线程池大小:最多线程个数(这里是5个)ThreadPool.QueueUserWorkItem(new WaitCallback ( 方法名 ) );//将方法排入队列以便执行ThreadPool.QueueUserWorkItem(new WaitCallback ( 方法名 ) ,参数);//带参数的方...原创 2019-06-16 16:47:37 · 363 阅读 · 0 评论 -
C#基础学习17(Socket通信,模拟在线聊天案例)
Scoket编程模型服务器端1.创建Socket对象,设置协议、传输方式等(连接Socket) Socket()2.绑定IP与端口(设置要监听的IP与端口) Bind()3.开始监听 Listen()4.开始接受客户端连接 //阻塞线程,同时也需要循环不断接受用户连接 Accept()5.接受了哭护短的连接,生成一个新的Sock...原创 2019-06-16 18:03:47 · 304 阅读 · 0 评论 -
C#基础学习18(连接MySql数据库)
一、连接数据库Data Source=;指定服务器IP(计算机名) 服务器\实例名Initial Catelog=;初始化分类,要连那个数据库名UserId=sa;Password=sa;用户名密码Integrated Security=true;使用Windows验证方法另外一种写法(旧):"server=.;database=Mydata;uid=sa;pwd=sa"...原创 2019-06-17 16:26:21 · 169 阅读 · 0 评论 -
C#基础学习19(数据库增删改查)
效果图:1.引用MySql.Data.dll并在程序中 using MySql.Data.MySqlClient;2.写一个Product的实体类3.制作窗体4.思路代码:public partial class Form1 : Form{ //连接字符串 private string connStr = "server=localhost;user...原创 2019-06-17 19:11:06 · 291 阅读 · 0 评论 -
C#基础学习20(防止SQL注入攻击)
登录演示:代码://点击登录按钮private void btnLog_Click(object sender, EventArgs e){ object m_obj; //获取输入的用户名密码 string userName = txtName.Text.Trim(); string userPsw = txtPsw.Text.Trim(); ...原创 2019-06-18 15:14:25 · 731 阅读 · 1 评论 -
C#基础学习21(封装SQLHelper)
优点:代码重用率高,便于维护易修改,代码更简洁、条理在App.config中添加<connectionStrings> <add name="connStr" connectionString="server=localhost;user id=root;password=123;database=pqxit;charset=utf8;port=3306"/>...原创 2019-06-18 16:31:16 · 203 阅读 · 0 评论 -
C#基础学习22(DataSet和DataTable)
DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTableDataSet:数据集,一般包含多个DataTable,用的时候,dataset["表名"]得到DataTableDataTable:数据表例:static void Main(string[] args){ //DataSet...原创 2019-06-23 14:11:59 · 300 阅读 · 0 评论 -
C#基础学习23(DataSet查询和更新数据)
窗体代码:DataSet ds = new DataSet();//点击查询private void 查询数据ToolStripMenuItem_Click(object sender, EventArgs e){ LoadDSData(); }//点击更新private void 修改更新ToolStripMenuItem_Click(obje...原创 2019-06-23 15:29:04 · 1183 阅读 · 0 评论 -
C#基础学习24(三层架构及案例)
一、三层架构1.表现层(UI):User Interface,通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他所见所得2.业务逻辑层(BLL):Business Logic Layer,针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。(备注:又称领域层,常用于业务规则、数据访问、合法性校验)3.数据访问层(DAL):Data Access Layer,针对数据...原创 2019-06-23 16:40:17 · 751 阅读 · 0 评论 -
C#基础学习13(多播委托、泛型委托)
一、多播委托1.可绑定多个方法,相当于创建了一个委托组合2.作何的委托必须是同一个类型3.委托的组合是给事件用的,普通的委托很少用4.委托可以直接赋值直接调用,委托的变量可以用+=、-=的方式赋值例:同C#基础学习13中委托案例class Program{ static void Main(string[] args) { //Greet...原创 2019-06-15 10:39:47 · 256 阅读 · 0 评论 -
C#基础学习01(基础关键字/枚举、结构、值类型和引用类型)
与Java区别参数地址传递:ref 例:public void init ( ref int i , ref string s ){ }数组循环:foreach访问器(get、set):例private int age;public int Age{ get { return age; } set { if (value &g...原创 2019-04-24 20:24:59 · 266 阅读 · 0 评论 -
C#基础学习05(多态、抽象方法和虚方法)
一、多态(重写、重载)1.重写,在子类中修饰词后写new2.重载,父类中是抽象方法(abstract),子类中修饰词后写override里氏替换(子is父,父as子)二、虚方法(virtual)虚方法可定义在普通类中,不用在抽象类中虚方法可以选择实现,可以实现可以不实现虚方法必须有方法体,哪怕为空子类中修饰词后写override三、虚方法抽象方法区别...原创 2019-05-14 19:39:15 · 207 阅读 · 0 评论 -
C#基础学习06(接口、IComparable、泛型接口)
一、接口(interface)1.接口可多实现2.实现方法与继承类相同3.默认public,方法前不能加访问修饰符public class Student:IComparable{ }//如果类继承了父类public class Student:Person,IComparable{ }二、IComparable接口List中如果放的是一个对象,如果对List进行...原创 2019-05-15 13:23:21 · 342 阅读 · 0 评论 -
C#基础学习07(熟悉Winform、消息弹窗、IO文件操作)
一、消息弹窗1.窗体跳转OrderForms of = new OrderForms();//new出新的窗体对象this.Hide(); //隐藏当前窗体of.ShowDialog(); //打开窗体of.Show(); //打开隐藏的窗体二、IO文件操作例:通过路径读取活写入文本文件,显示到窗体中,复制按钮为复制一个视频案例。...原创 2019-05-15 20:28:17 · 530 阅读 · 0 评论 -
C#基础学习09(XML)
一、认识XML1.特殊符号:字符 实体引用 & & > > < < " " ' ' 2.CDATA部件(可不被xml所解析)用法: <![CDATA[内容]]>二、解析xml1.准备好xml文件...原创 2019-05-21 16:05:21 · 245 阅读 · 0 评论 -
C#基础学习08(序列化和反序列化)
1.引用命名空间using System.Runtime.Serialization.Formatters.Binary;//引入命名空间2.类必须是可序列化的[Serializable] //使此类可序列化public class Person{ private string name; public string Name { ...原创 2019-05-16 14:43:33 · 295 阅读 · 0 评论 -
C#基础学习03(ArrayList、Hashtable)、泛型集合,字典Dictionary
一、ArrayList1.添加//java中ArrayList arr = new ArrayList();arr.add(1);//C#中ArrayList arr = new ArrayList();arr.Add(1);2.删除//java中Student stu = new Student();ArrayList arr = new ArrayList()...原创 2019-05-12 20:21:20 · 231 阅读 · 0 评论 -
C#基础学习04(继承)
一、继承1.语法与java的不同//java中public class Student extends Person{ }//C#中public class Student:Person{ }2.子类调用父类用base //父类中private string name;public string Name(){ get...原创 2019-05-13 15:54:53 · 147 阅读 · 0 评论 -
C#基础学习10(正则表达式)
一、正则表达式以^符号开始,以$符号结束例1:(15位或者18位身份证验证) 引入命名空间 using System.Text.RegularExpressions;代码实现:static void Main(string[] args){ string IDnumber = "^([1-9][0-9]{14}|[1-9][0-9]{16...原创 2019-05-27 16:00:04 · 229 阅读 · 0 评论 -
C#基础学习11(敏感词汇审核案例、StringBuilder类)
一、StringBuilder(可变字符序列)String对象,一旦赋值就不可改变(叫做字符串的恒定性),赋值完了之后,再对String进行拼接,赋值等,都会再内存里面重新分配一个新的内存空间,StringBuilder解决了这个问题。方法:Append:可以将文本或对象添加到结尾处Capacity:设置容量和长度Insert:添加到指定位置AppendFormat:添加到...原创 2019-05-28 14:59:34 · 450 阅读 · 0 评论 -
C#基础学习12(委托、窗体传值)
一、委托(delegate)委托是一种数据类型委托是存放符合某种方法签名的方法的地址的集合解决方法无法作为参数传递例:有两个方法,分别是中文打招呼和英文打招呼,两个方法作为参数来传递class Program{ static void Main(string[] args) { Greet("李大锤",English);//调用打招呼方法,并...原创 2019-05-28 16:05:53 · 1037 阅读 · 0 评论 -
C#基础学习25(ProductManagmentSystem)
商品管理系统1.按照三层架构创建项目:2.引用3.制作窗体界面4. 新建实体模型Modelpublic class Product{ private int id; public int Id { get { return id; } set { id = value; } } privat...原创 2019-06-23 21:54:39 · 556 阅读 · 0 评论