• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敬YES
Now Or Never
博客园    首页       联系   管理    订阅  订阅

随笔分类 -  C#

Unity Container 应用示例

摘要:一 项目引用Unity 右键项目引用-> 管理Nuget包->搜索unity->安装Unity 和 Unity Interception Extension,如下图所示. 二 创建基础类 我们以商品查询的数据层注入为例. 1.首先创建商品实体Model. 如果商品信息要被序列化,就要为该类添加Ser 阅读全文
posted @ 2015-07-04 13:46 敬YES 阅读(11214) 评论(6) 推荐(3)
C#基础拾遗03-注册表保存用户设置

摘要:1. 注册表介绍 注册表查看工具regedit.exe。最高级主要包括5个键。另外还有2个隐藏的,一般不常用。2. 注册表操作.NET操作注册表主要用到两个类,命名空间为Microsoft.Win32。RegistryKey:针对具体键的操作,包括3个只读属性和一些列的方法,分别添加、删除和设定子键和值。Registry:主要包括7个只读属性,分别对应可能存在的7个顶级键。3. 注册表实例实例很简单:通过下拉框选择颜色,作为窗体的背景色。当关闭窗口时自动保存设置。² 页面布局:新建Windows Application程序,在窗体上添加一个ComboBox控件;² 初始化颜 阅读全文
posted @ 2011-06-04 21:38 敬YES 阅读(1007) 评论(1) 推荐(2)
C#基础拾遗02-XML串行化

摘要:C#基础拾遗02-XML串行化1. 什么叫串行化? 串行化(Serialize)是指将对象存储到介质(如文件、内存缓冲区等)中或是以二进制方式通过网络传输。反串行化(Deserialize)指将这些连续的数据重新构建一个与原始对象状态相同的对象 2. 串行化分类两种形式 二进制串行化串行化时数据以二进制形式存入文件。但是该方式不适合同其他非.NET程序交换数据。 XML串行化对象的公共属性以XML元素和特性表示。该方式可以和其他非.NET程序交换数据。该方法要引用命名空间using System.Xml.Serialization; 另外,XML串行化器是不能针对枚举类型串行化操作的,如果有必 阅读全文
posted @ 2011-06-03 18:32 敬YES 阅读(985) 评论(1) 推荐(1)
C# Windows基础拾遗01—线条绘制篇

摘要:Windows绘制图形首先要定义DC(Device Context),在.NET中直接使用Graphics类。然后分配画图工具如画笔等,调用绘图函数进行绘制。要注意的是,画图后要记得释放Graphics以及画图工具等对象,因为图像对象占用很大的资源,不能等到.NET运行库最终自动释放。 1. 线条:直线刚性,曲线柔美 首先新建Windows Form程序,要想在窗体加载时就绘出线条,那么只能重写OnPaint ()事件,在Form_Load中是行不通的。 其中, DrawLines()是用来绘制直线的;DrawCurve()方法绘制光滑的齿条曲线,第三个参数表示曲线的张力,默认为0.5F,从例 阅读全文
posted @ 2011-05-18 16:27 敬YES 阅读(2758) 评论(7) 推荐(6)
C#获取打印机列表

摘要:一、PrinterSettings类 要用到的类PrinterSettings,在CSDN中的解释如下: System.ObjectSystem.Drawing.Printing.PrinterSettings 命名空间: System.Drawing.Printing程序集: System.Dra 阅读全文
posted @ 2011-03-15 18:23 敬YES 阅读(28625) 评论(4) 推荐(1)
将GridView数据导出到Excel实现

摘要:最近想整理一些词库,懒得手动找,又怕手一哆嗦有遗漏,决定写程序完成吧。首先将数据用GridView控件显示到页面上,效果如下:接下来将GridView中的内容导出到Excel,方法如下:[代码]在按钮上添加事件来导出Excel。注意,因为GridView是有分页和排序设置的,为了能够显示完整的数据,要先取消分页排序,导出之后再恢复设置。代码如下:[代码]可是运行之后报错:类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。添加重写方法:[代码]完成后效果如下:这下可以让程序帮我整理了,省了一笔麻烦啊。 阅读全文
posted @ 2011-01-05 11:33 敬YES 阅读(1209) 评论(4) 推荐(0)
ref和out区别概要

摘要:一直知道ref和out都是引用类型传值的。不过没太明白他们之间的区别,今天又长了点小知识。大伙都知道,进行参数传递的时候如果想传递地址,可以使用ref或者out关键字。其实两者都是按地址传递的,使用后都将改变原来的数值。主要不同点:ref是可以把参数的值传递进函数的,但是Out在函数中必须首先赋值才能使用,这样就会覆盖原来传进来的值。 简要概括就是ref有进有出,而out是只出不进。例如下面两个方法中,ValueWithRef无需重新赋值,而ValueWithOut如果不为i重新赋值便会编译错误。[代码] 阅读全文
posted @ 2010-11-19 17:54 敬YES 阅读(582) 评论(2) 推荐(0)
C#高级编程-共享程序集强命名

摘要:首先记一下查看程序集的命令:命令行输入ildasm,这是一个反汇编程序。此外,.net Reflector也是分析程序集的强大工具,可以将IL代码反编译为C#,C++,VB。网址http://www.aisto.com/roeder/dotnet。 言归正传了,共享程序集需要进行强命名。要利用sn.exe产生密钥对。具体步骤:创建类库,命名空间为Sharing,与建立普通类库过程一致。创建强命名:生成公钥与私钥对,并对私钥做严格的保护。 ①可以项目属性-》Signing-Sign the assembly,然后选择或者添加pfx文件即可。 ②使用命令行工具: 生成:sn -k e:\Stu 阅读全文
posted @ 2010-09-10 17:18 敬YES 阅读(1664) 评论(0) 推荐(0)
string .format

摘要:想生成类似20090409001的序号。string sUsername = ""; string date = DateTime.Now.ToString("yyyyMMdd"); DataTable dtmax = Conn.query("select sUserName from xUser where sUserName like '" + date + "%' order by sUserName desc "); if (dtmax.Rows.Count == 0) sUsername = date + "001"; else sUsername =date +String .Fo 阅读全文
posted @ 2009-04-10 14:48 敬YES 阅读(467) 评论(0) 推荐(0)
C#.net技术内幕05-面向对象概念

摘要:继承: 类可以从基类继承得到所有的操作、属性、特性、事件以及这些内容的实现方法。但不能继承实例构造函数、析构函数和静态构造函数,也不能继承那些显示拒绝访问的成员。继承扩展了基类,并且是可传递的。而且派生类可以声明同样名称或同样签名的新操作,来隐藏继承得到的成员。多态性:指能够根据根据数据类或者数据类型,以不同的方式处理对象。或者说,提供方法或者属性的不同实现方法,但具有相同的签名。三种类型多态性:接口多态性、继承多态性和抽象类多态性。 接口多态性:多个类可以实现同样的接口,一个类也可以实现多个接口。 继承多态性:在基类中使用virtual关键字,然后在子类中重写功能。由于继承类会继承基类中所有 阅读全文
posted @ 2009-03-17 20:23 敬YES 阅读(503) 评论(0) 推荐(0)
C#.net技术内幕04-集合

摘要:锯齿数组:锯齿数组就是数组的数组。例如:Int[]a=newint[][]{Newint[]{1,1,1};Newint[]{23,12};} 2.Out与ref:将数组作为参数传递时,在调用函数之前不需要初始化out参数,但调用的函数必须在返回前分配数组类型。而且,ref参数必须在函数调用之前分配。 3. 枚举数(enumerator): 它是一个对象,可以通过它对集合项进行便利。枚举数只能读取但不能改变集合的至。在实例化后,会被放在集合第一个元素之前。如果不调用movenexe就直接使用current访问的话会出错。当枚举数到达集合的末尾时,会停留在集合的最后一个元素后面,并返回假。如果此 阅读全文
posted @ 2009-03-17 20:22 敬YES 阅读(930) 评论(0) 推荐(0)
C#.net技术内幕03---字符串

摘要:String与StringBuilderstring字符串具有不变性。其实两个字符串连接后产生的是一个新字符串。因此当使用大量字符串时会降低性能。而StringBuilder可以高效的使用字符串。命名空间是System.text。累加字符串时不会每次都生成新的对象,因此当大量构造时不会影响很多性能。 转义字符当字符串中包含制表符、反斜线等时,需要使用转义序列,也可以在字符串签名加上@。StringBuilder常用方法: Append:追加字符串。具有多种重载方法。 Appendformat:追加格式化的字符串。 Insert:(插入的索引位置,插入的值)。 Replace:可以先创建一个字符 阅读全文
posted @ 2009-03-17 20:20 敬YES 阅读(462) 评论(1) 推荐(0)
C#.NET技术内幕 02----表达式

摘要:5.在c#中,+、-、*、/、++,--,>等一系列的运算符都是可以重载的,但是+=,-=等运算符不可以重载。6.要注意短路运算。例如两个表达式进行与运算,而第一个表达式为假,则第二个表达式不再予以执行。7.switch语句:每个case语句都要包含一个break;当case没有语句时,才会失败;如果想从一个case跳转到另外一个case,使用goto。8.break语句用来跳出循环,而continue语句是用来跳出循环语句的其余部分,并且将控制权交给循环语句体的下一次循环。 阅读全文
posted @ 2009-03-17 20:19 敬YES 阅读(439) 评论(0) 推荐(0)
《 C#技术内幕》学习01--IDisposable

摘要:《 C#技术内幕》笔记11.IL:中间代码。.net编译器所编译的代码成为IL。2.JIT:实时编译器3.CLR:公共语言运行时,comm langua runtime。4.CLS:公用语言运行规范5.CTS:common type system,公共类型系统6.在创建数据库连接时,.net提供了一种设计模式:Idisposable. 可以使相应类集成Idisposable。并且调用时使用using,以保证对象结束时会调用Disposal方法。例如:定义类public class A : IDisposable { privateSqlConnection conn = new SqlConn 阅读全文
posted @ 2009-03-17 20:17 敬YES 阅读(597) 评论(0) 推荐(0)
获得本机的IP,掩码和网关

摘要:首先找到资源管理器里的引用,右击添加引用:System.Management; usingSystem; usingSystem.Management; namespaceConsoleApplication1 { classProgram { staticvoidMain(string[]args) { ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollectionnics=mc.GetInstances(); foreach(ManagementObj 阅读全文
posted @ 2008-10-19 11:39 敬YES 阅读(692) 评论(0) 推荐(0)
低级问题 :得到当前日期,格式为 年-月-日

摘要:想得到该格式的当前年月日,开始老写不对。用DateTime .Now .ToString ("YYYY-MM-DD"),不对;得到“YYYY-07-DD”。用DateTime .Now .ToString ("yyyy-mm-dd") 不对;得到“2008-23-01”;最后改用DateTime .Now .ToString ("yyyy-MM-dd")终于正确了。 阅读全文
posted @ 2008-08-01 10:31 敬YES 阅读(852) 评论(1) 推荐(0)
用户登陆的验证码的制作

摘要:添加命名空间:using System.Drawing;验证码的生成:protected void FormCheck() { //////先得到验证码的内容并且存放到会话中 Random rand = new Random(); int len = rand.Next(4, 6);//随机获得验证码的长度4-6位 char[] str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();//将候选字符放入字符数组中 System .Text .StringBuilder code=new System.Text.StringBuil 阅读全文
posted @ 2008-07-23 15:35 敬YES 阅读(620) 评论(0) 推荐(0)
c#启动本机程序

摘要:写一段简单的程序启动本机上的程序,千千静听,IE或者计算器。觉得挺有意思的。初学,和大家分享一下。我是使用的控制台应用程序首先添加命名空间:using System.Diagnostics;namespace 控制台{ class Program { static void Main(string[] args) { Console.WriteLine("please input :1-千千静听,2-IE,3-计算器"); int cmd = Console.Read(); if (cmd == 49) Process.Start("TTPlayer.exe"); else if (cmd = 阅读全文
posted @ 2008-07-23 15:30 敬YES 阅读(604) 评论(0) 推荐(2)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3