随笔分类 -  C#

C#学习笔记
摘要:1.25 NPOI.dll using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows... 阅读全文
posted @ 2016-10-26 21:55 sidecore 阅读(2301) 评论(0) 推荐(0)
摘要:在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率: 1、查询各个磁盘分区的剩余空间:Exec master.dbo.xp_fixeddrives 2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、 阅读全文
posted @ 2016-10-23 21:42 sidecore 阅读(29908) 评论(0) 推荐(0)
摘要:先引入using System.Net.Mail; /// 发送邮件 /// /// 发送邮件 /// /// 收件人邮箱地址 private void Sendmail(string tomail) { var smtpClient = new SmtpClient(); var mailMessage = new MailMessage(); smtpClient.Host = ConfigurationMa... 阅读全文
posted @ 2013-12-30 10:23 sidecore 阅读(2802) 评论(0) 推荐(0)
摘要:冒泡排序 1 namespace BubbleSorter 2 3 { 4 5 public class BubbleSorter 6 7 { 8 9 public void Sort(int[] list)10 11 {12 13 int i, j, temp;14 15 bool done = false;16 17 j = 1;18 19 while ((j < list.Length) && (!done))20 21 ... 阅读全文
posted @ 2013-01-20 13:36 sidecore 阅读(462) 评论(0) 推荐(0)
摘要:1. 什么是部分类型?C# 2.0 引入了部分类型的概念。部分类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。部分类型适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。 (2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。 (3) 需要多人合作编写一个类。部分类型是一个纯语言层的编译处理,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的部分类型合并成一个完整的类。 public partial class Program { static void Main(string[] args) {... 阅读全文
posted @ 2012-12-03 16:36 sidecore 阅读(226) 评论(0) 推荐(0)
摘要:C# 重载与覆盖(转)overload:重载指的是同一个类中有两个或多个名字相同但是参数不同的方法,(注:返回值不能区别函数是否重载),重载没有关键字。override:过载也称重写是指子类对父类中虚函数或抽象函数的“覆盖”(这也就是有些书将过载翻译为覆盖的原因),但是这种“覆盖”和用new关键字来覆盖是有区别的。new:覆盖指的是不同类中(基类或派生类)有两个或多个返回类型、方法名、参数都相同,但是方法体不同的方法。但是这种覆盖是一种表面上的覆盖,所以也叫隐藏,被覆盖的父类方法是可以调用得到的。重载覆盖的发生条件:重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型 阅读全文
posted @ 2012-12-02 17:19 sidecore 阅读(287) 评论(0) 推荐(0)
摘要:索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。1、索引器的定义C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。定义索引器的方式与定义属性有些类似,其一般形式如下:[修饰符] 数据类型 this[索引类型 index]{ get{//获得属性的代码} set{ //设置属性的代码}}修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.数据类型是表示将要存取. 阅读全文
posted @ 2012-12-01 00:07 sidecore 阅读(231) 评论(0) 推荐(0)
摘要:静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量。static变量在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。 1 class Dogs 2 { 3 //静态成员,狗的数量 4 public static int Count =0; 5 //非静态成员,狗的名称 6 public string Name; 7 //创... 阅读全文
posted @ 2012-11-30 23:52 sidecore 阅读(1310) 评论(0) 推荐(0)
摘要:ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。 使用ref前必须对变量赋值,out不用。 out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。 区别可以参看下面的代码:using System;class TestApp{ static void outTest(out int x, out int y) {//离开这个函数前,必须对x和y赋值,否则会报错。 //y = x; //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行 ... 阅读全文
posted @ 2012-11-29 20:20 sidecore 阅读(336) 评论(0) 推荐(0)
摘要:用 params 修饰符声明的参数是参数数组。如果形参表包含一个参数数组,则该参数数组必须位于该列表的最后而且它必须是一维数组类型。例如,类型 string[] 和 string[][] 可用作参数数组的类型,但是类型 string[,] 不能。不可能将 params 修饰符与 ref 和 out 修饰符组合起来使用。在一个方法调用中,允许以下列两种方式之一来为参数数组指定对应的参数:赋予参数数组的参数可以是一个表达式,它的类型可以隐式转换为该参数数组的类型。在此情况下,参数数组的作用与值参数完全一样。或者,此调用可以为参数数组指定零个或多个参数,其中每个参数都是一个表达式,它的类型可隐式转换 阅读全文
posted @ 2012-11-29 19:27 sidecore 阅读(424) 评论(0) 推荐(0)
摘要:一般情况下,如果你需要声明的常量是普遍公认的并作为单个使用,例如圆周率,黄金分割比例等。你可以考虑使用C# const常量,如:public const double PI = 3.1415926;。如果你需要声明常量,不过这个常量会随着实际的运行情况而决定,那么,readonly常量将会是一个不错的选择,例如上面第一个例子的订单号Order.ID。 另外,如果要表示对象内部的默认值的话,而这类值通常是常量性质的,那么也可以考虑const。更多时候我们对源代码进行重构时(使用Replace Magic Number with Symbolic Constant),要去除魔数(Magic Num 阅读全文
posted @ 2012-11-29 19:21 sidecore 阅读(290) 评论(0) 推荐(0)