当前位置: 首页 > news >正文

学做网站学费谷歌商店下载官网

学做网站学费,谷歌商店下载官网,wordpress user role editor,合肥做网站费用那些年学习C#,就是对C#相关的一些知识有一个了解,等到要用时才不会找不到方向,比如说扩展方法,开始时怎么觉得没有用,后来了解到asp.net MVC,它可以用来扩展Html类,比如做一个分页的方法;所以对…

那些年学习C#,就是对C#相关的一些知识有一个了解,等到要用时才不会找不到方向,比如说扩展方法,开始时怎么觉得没有用,后来了解到asp.net MVC,它可以用来扩展Html类,比如做一个分页的方法;所以对一门语言了解宽一些是没有坏处的;C#中还有一些在上文中没有提到的,如:读取文件、网络(socket)编程、序列化等,他们都是非常重要的啊,下面再来看一看吧!

一、读取文件

在文件读取学习时,一般都会提到字节流与字符流,前都按字节读取,后都按字符读取;我们通过FileStream、StreamWriter、StreamReader、BinaryWriter、BinaryReader来完成,在System.IO空间中提供了他们的使用,读取文件操作不仅再桌面程序中有用,而且在asp.net web程序中也很有用,通过读取文件可以生成静态的网页,一些不需要交互的页面,都可以做成静态的页面,比如新闻。下面来看一下具体是怎么用他们的吧:

1、 StreamWriter、StreamReader的使用:

  

 /// <summary>/// Writer通过路径来得读取文件,并写入数据/// </summary>/// <param name="path">路径</param>public void FileOpOrCreateWriter(string path){//打开或创建一个文件using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate)){//向打开文件中写入数据using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)){//写入数据sw.WriteLine("my name is whc");sw.Flush();}}}/// <summary>/// Reader读取文件/// </summary>/// <param name="path">路径</param>public void FileOpOrCreateReader(string path){using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate)){using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)){Console.WriteLine(sr.ReadLine());}}}

2、 BinaryWriter、BinaryReader的使用

  

 /// <summary>/// Writer二进制的写入方法/// </summary>/// <param name="path"></param>public void FileOpOrCreateBinaryWriter(string path){using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate)){using (BinaryWriter bw = new BinaryWriter(fs, Encoding.UTF8)){string myStr = "this is a Good boy 中国!!!";//得到字符串的二制代码byte[] bt = new UTF8Encoding().GetBytes(myStr); //UTF8Encoding().GetBytes(myStr);Console.WriteLine("二进制为:" + bt + ",大小:" + bt.Length);bw.Write(bt);bw.Flush();}}}/// <summary>/// BinaryReader读取数据/// </summary>/// <param name="path"></param>public void FileOpOrCreateBinaryReader(string path){using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate)){using (BinaryReader br = new BinaryReader(fs, Encoding.UTF8)){char[] myStr = new char[1024];//得到字符串的二制代码byte[] bt = br.ReadBytes(1024);//解码Decoder d = new UTF8Encoding().GetDecoder();d.GetChars(bt, 0, bt.Length, myStr, 0);Console.WriteLine(myStr);}}}

3、 文件的其它操作

  

 /// <summary>/// 删出文件/// </summary>/// <param name="path"></param>public void DeleteFile(string path){try{File.Delete(path);}catch (Exception e){Console.WriteLine("It is errors");}}/// <summary>/// 显示目录下的文件/// </summary>/// <param name="path"></param>public void getDirectorInfo(string path){//得到目录下的目录string[] fileNameList = Directory.GetDirectories(path);for (int i = 0; i < fileNameList.Length; i++){Console.WriteLine(fileNameList[i]);FileInfo fi = new FileInfo(fileNameList[i]);Console.WriteLine("   文件名:" + fi.FullName);Console.WriteLine("   文件创建的时间:" + fi.CreationTime);Console.WriteLine("   最后访问时间:" + fi.LastAccessTime);}}

二、    序列化

    在C#中序列化又叫做串行化,是.net平台运行环境支持用户定义类型的流化机制,其作用是以某种形势存储让对象持久化,或是在网络中传输,可以存放在文件,或是数据库中,应用程序下次启动时可以读取上一次保存的态状,以便在不同的就用程序中共享数据,其主要作用如下:

  1、在进程下次启动时读取上次保存的对象的信息

  2、在不同的AppDomain或进程之间传递数据

  3、在分布式应用系统中传递数据

 .NET提供了三种方式来序列化一个对象,主要有:

  1、二进制方式,BinaryFormatter,可以使用IFormatter接口来使用它 using System.Runtime.Serialization.Formatters.Binary;

    将对象序列化为二进制,代码如下:

    

 /// <summary>/// 序列化一个对象到内存中/// </summary>/// <param name="obj"></param>/// <returns></returns>private byte[] Serializable(SerializableObj obj){IFormatter ifmt = new BinaryFormatter();using (MemoryStream ms = new MemoryStream()){ifmt.Serialize(ms, obj);return ms.ToArray();}}

    2、SoapFormatter using System.Runtime.Serialization.Formatters.Soap;IFormatter接口来使用它 没有时,可添加对应的程序集

   Soap方式是一种简单对象访问形式,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。

   SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。

   它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。)

代码如下:

   

 /// <summary>/// 反序列化一个内存中的对象/// </summary>/// <param name="byteData"></param>/// <returns></returns>private SerializableObj DeSerializable(byte[] byteData){IFormatter ifmt = new SoapFormatter();using (MemoryStream ms = new MemoryStream(byteData)){return (SerializableObj)ifmt.Deserialize(ms);}}

  3、XML序列化 using System.Xml.Serialization;.XmlSeralizer要求类有个默认的构造器

    

 XmlSerializer xsl = new XmlSerializer(typeof(SerializableObj));using (MemoryStream ms = new MemoryStream(byteData)){return (SerializableObj)xsl.Deserialize(ms);}

我们分别可以通过这几种方式完成需要的序列化

同时,我们在指定类的时候也可以通过特性说明哪些需要序列化,哪些不需要序列化,如下:

[Serializable]//需要序列化class SerializableObj{[NonSerialized] //不需要序列化public int OrderId;public string OrderName;public SerializableObj() { }public SerializableObj(int OrderId, string OrderName){this.OrderId = OrderId;this.OrderName = OrderName;}public override string ToString(){return "OrderId:" + OrderId + "\t\nOrderName:" + OrderName;}}

4、自定义序列化

  自定义序列化可以使用ISerializable接口,并且实现GetObjectData()方法,就可以自定义序列化的方式,如下:

class CumstomSerializable:ISerializable{public void GetObjectData(SerializationInfo info, StreamingContext context){throw new NotImplementedException();}}

三、    Linq的学习

linq是C#3.0的新添加的一个特性,为了使得查询更容易,同时可以对集合进行操作,使得对数据库与集合的操作更加简单,如:Linq to sql、Linq to dataset等,Linq查询表达式是以"from"开始,以一个"select子句"或是"group by子句"结束.

  1、Linq中的关键字

   ·from:指定数据源以 用来迭代数据源的变量(范围变量)

   ·where:过滤查询结果

   ·select:指定查询结果中的项

   ·group:通过某一关键字,对相关的值进行聚合

   ·into:存储聚合中的结果,或连接到一个临时变量

   ·orderby:查询结果按某一关键字升序或降序排列

   ·join:通过一个关键字,对两个数据源进行连接

   ·let:创建一个临时变量,来表示子查询的结果

  2、System.Linq.Enumernable类的方法

   ·Aggregate():对序列中的每一项应用同一个函数

   ·Average():返回序列中每一项的平均值

   ·Count():返回序列的总项数

   ·Distinct():返回序列中不同的项

   ·Max():返回序列中的最大值

   ·Min():返回序列中的最小值

   ·Select():返回序列中某些项或属性

   ·Single():返回序列中的某一个单一值

   ·Skip():跳过序列中指定数目的项并返回剩下的元素

   ·Take():返回序列中的指数目的元素

   ·Where():过滤序列中的元素

   ·OrderBy():返回发某一特定字段升序排序的结果

   ·OrderByDescending():返回按某一特定字段降序排序的查询结果

   ·ThenBy():返回使用某一额外字段排序的查询结果

   ·ThenByDescending():返回使用霜一额外字段进行降序排序的查询结果

   ·SingleOrDefault():选择单独一行或默认的实例

   ·Skip():允许跳过指定数量的记录

   ·Take():允许获得一定数量的记录

4、 示例:

  

 List<string> linqList = new List<string>() {"Demo1","Demo2","Demo3"};//lq是一个范围变量,where是条件,看起来很像SQL语句IEnumerable<string> results = from lq in linqList where lq.Contains("2") select lq;foreach (var result in results){System.Console.WriteLine(result.ToString());}

结果:Demo2

 Linq查询被翻译时会调用System.Linq.Enumernable类的方法,将Linq语句翻译成查询语句与查询方法:var demo = linqList.Where(m => m.Contains("2")).Select(m => m); 结果同上

 总结:

   那些年学习C#,主要是对它的一些基础知识的学习,同时也是在asp.net web开发时更好的使用C#进行编程,此文以回忆那些年学习C#的日子。

转载于:https://www.cnblogs.com/xin_ny/archive/2012/03/02/2377715.html

http://www.lbrq.cn/news/2499625.html

相关文章:

  • 建设网站必备的开发工具南宁做网站公司
  • 网站做镜像百度游戏中心
  • 微信制作宣传网站有哪些内容今日十大新闻
  • 广西网站建设哪家好做百度推广怎么做才能有电话
  • 自己如何做独立网站二手交易平台
  • 南昌做网站开发的公司哪家好微营销
  • 工商银行建设银行招商银行网站seo外包收费
  • 企业快速建站必备的几大常识长沙靠谱关键词优化公司电话
  • 可以上传数据的网站开发推广链接点击器网页
  • 汽车之家网站如何免费发布广告
  • 兰州彩票网站制作交换友情链接的网站标准是什么
  • 中山 网站建设一条龙全包app引流推广方法
  • 请人做网站后台密码制作网站的最大公司
  • 莱芜高新区管委会网站长沙免费建站网络营销
  • 做视频网站多大服务器百度一下首页设为主页
  • 潘嘉严个人网站网络营销到底是干嘛的
  • ui做网站实例百度指数只能查90天吗
  • 建设网站的安全性介绍aso优化榜单
  • 如何在jsp上做网站页面代码百度广告收费表
  • 铜川网站建设公司电话舆情信息在哪里找
  • 云电子网站开发近10天的时事新闻
  • vue做单页面网站3322免费域名注册
  • 宿州做企业网站公司美区下载的app怎么更新
  • 东营做网站公司网络营销的概念及内容
  • 国外平面设计师常看的网站名优网站关键词优化
  • 企业铭做网站免费网站站长查询
  • 新网站怎么做才会被收录软文广告素材
  • 百中搜网站建设媒体资源网
  • 珠海做网站方案杭州百度推广优化排名
  • 网站个免费的空间国外搜索引擎大全百鸣
  • 对于ui=f(state)的理解(react)
  • Claude Launcher:支持Kimi K2的Claude Code可视化启动工具
  • 力扣988. 从叶结点开始的最小字符串
  • 力扣热题100----------41.缺少的第一个正数
  • 深入理解Java内存与运行时机制:从对象内存布局到指针压缩
  • Coze 与 Dify 深度对比:2025 年 AI 智能体平台选型指南