1、表示继承关系 class classA:classB2、继承构造,调用自己这个类的某个构造函数,因为有的类构造函数很多参数,而有的参数又不是必须填写,或者可以提供一些默认值,就跟重载是一样的道理。在调用SocketServer(string ip, int port)时,先调用this(ip, port, BufferDefaultSize)publicclass SocketServer //: TcpListener {privateconstint BufferDefaultSize = 8192;///<summary>构造函数</summary>///<param name="ip">本机...
委托与事件 Ganesh Nataraj最近写了一篇解释委托与事件的文章,在坊间流传较广,今天翻译成中文与大家共享,如有不妥之处,欢迎留言讨论。
C#中的委托类似于C或C++中的函数指针。程序设计人员可以使用委托将方法的引用压缩到委托对象中,委托对象能被传递给调用该方法引用的代码而无须知道哪个方法将在编译时被调用。与C或C++中的指针不同的是,委托是面向对象的、类型安全的、受保护的。
委托声明时定义一个返回压缩方...
要设置显示或者隐藏分类数据下的详细信息,在便于数据查看、管理的同时也使文档更具美观性。那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述。方法中使用了免费版组件Free Spire.XLS for .NET,下载安装该组件,创建一个控制台应用程序后,添加引用该组件安装包下的dll文件到项目中,同时添加相应的命名空间即可。下面是具体的代码操作步骤,供参考。步骤一:创建一个Wordbook类对象,获取第一个工作表Workboo...
一個已上線、用戶龐大的系統,幾個月來第一次出現這個系統錯誤訊息 :「已經加入含有相同索引鍵的項目」An item with the same key has already been added.分析原因:C# 的 Dictionary 這種資料結構的變數,若宣告為 static,在使用上,要注意寫入或 Add 資料前,只作 if ContainsKey 判斷是不夠的 (如下圖 2),因其不是「執行緒 ; 线程 (thread)」安全的 (若有多人同時寫入,有可能造成異常,甚至出錯。機率不高,但久久偶爾會發生...
索引器例子using System;
using System.Collections;publicclass IndexerClass
{privatestring[] name = newstring[2];//索引器必须以this关键字定义,其实这个this就是类实例化之后的对象publicstringthis[int index]{//实现索引器的get方法get{if (index < 2){return name[index];}returnnull;}//实现索引器的set方法set{if (index < 2){name[index] = value;}}}
}
publicclass Test
{staticvoid Main(){//索引器的使用IndexerCl...
publicstaticstring AddNewLine(string inString,int num,string addString="\r\n"){return Regex.Replace(inString, string.Format(@".{{{0}}}", num), "$0"+addString);} 原文:http://www.cnblogs.com/simadi/p/3897779.html
1、属性 所谓属性其实就是特殊的类成员,它实现了对私有类域的受控访问。在C#语言中有两种属性方法,其一是get,通过它可以返回私有域的值,其二是set,通过它就可以设置私有域的值。比如说,以下面的代码为例,创建学生姓名属性,控制对name字段的受控访问:using System;public class Student
{
private string name;
/// <summary>
/// 定义学生的姓名属性
/// </summary>
public string Name
{
...
1:减少代码的选项可以是用Object类,也可以使用泛型但是Object类进行类型传递不是类型安全的。泛型类使用泛型类型保证了类型安全。泛型类 泛型方法 泛型接口泛型优点:1:性能装箱和拆箱很容易使用,但性能损失比较大。泛型的话在编译的时候就会动态生成我们定义他的类型,这样就不用进行装箱和拆箱。var list=new List<int>();上面这一句的话编译的时候就会编译成对应的int类型了,所以在运行的时候不用在进行装拆箱操作了。2:类...
移除全部事件委托C# code
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 public class Test { public event EventHandler AA; public void Foo() { if (AA != null) AA(this, new EventArgs()); } } static void Main(string[] args) { Test obj = new Test(); obj.AA += delegate { Console.WriteL...
原文:C#并行编程-Parallel菜鸟学习并行编程,参考《C#并行编程高级教程.PDF》,如有错误,欢迎指正。 TPL中引入了一个新命名空间System.Threading.Tasks,在该命名空间下Task是主类,表示一个类的异步的并发的操作,创建并行代码的时候不一定要直接使用Task类,在某些情况下可以直接使用Parallel静态类(System.Threading.Tasks.Parallel)下所提供的方法,而不用底层的Task实例。Parallel.Invoke 试图将很多方法并行运行,如果传入的...
1 获得当前系统时间: DateTime dt = DateTime.Now;2 3Environment.TickCount可以得到“系统启动到现在”的毫秒值4 5 DateTime now = DateTime.Now;6 Console.WriteLine(now.ToString("yyyy-MM-dd")); //按yyyy-MM-dd格式输出s 7 8 Console.WriteLine(dt.ToString()); // 26/11/2009 AM 11:21:30 9 10 Console.WriteLine(dt.ToFileTime().ToString()); // 12903679290801402411 12// Converts the value of the curr...
1、原因:上午更新了vs2015后,找不到该文件。2、解决方法:1、工具->Nuget包管理器->程序包管理器控制台-> 输入 Install-Package Microsoft.Web.Infrastructure2、等待片刻,安装完成即可。原文:https://www.cnblogs.com/masonblog/p/12740789.html
从今天开始正事开始学习C#语言了,本来我是不会学习C#的但现在.Net主流还是用C#进行开发,而且我以后有点想Unity3D发展Unity3D也支持C#。而且现在我的课正好也有C#和.Net正好好好学习一下这个,将来多一项技能总是不错的。 从今天开发每天一课学习C#和.Net就用传智播客的视频教程,现在看了一课讲的还很不错知道了不少的东西。那上面都划好了每天多少的内容了,我正好照着上面好好学习天天向上。今天11月份就要毕业了我的时间也...
public static bool IsDateTime(string StrSource)
{
return Regex.IsMatch(StrSource, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[...
当把一个值类型赋值给引用类型,这个过程可以看作是"装箱"。object a = 10;以上,堆栈上的过程大致是:1、在栈上开辟空间给变量a2、在堆上开辟空间,习惯上把该空间看作是"箱子"3、把10"装箱" 变量a指向堆上值为10的对象,换句话说,变量a的值是堆上对象的地址。 现在,如果我们想让a=11,可能首先想到的是:让"箱子"内的10自增1,变成11。 尝试这样做:oject a = 10;
a++;结果报错:++无法运用于object类型。也就是说,++无法应用...