![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
X___V
开源
展开
-
c#学习笔记
笔记是给我自己看的可能有些地方会描述错误。不定期更新!本来想设为私有的不公开,貌似没得设置1.对一段代码折叠(即代码开头多了个小+号,可以折叠,展开)#region "折叠后显示的名字" //放在需要折叠代码头部#endregion //放在需要折叠代码的末尾把一个字符串转换成枚举类型:(枚举类型)(Enum.Parse(typeof(枚举类型),"待转原创 2013-02-21 16:56:29 · 802 阅读 · 0 评论 -
C# const和readonly的区别
初始化赋值不同const修饰的常量必须在声明的同时赋值,例如: public class Class1 { public const int MaxValue = 10;//正确声明 public const int maxValue; //错误,常量字段要求提供一个值 public Class1() {原创 2013-03-20 22:59:34 · 563 阅读 · 0 评论 -
sealed,new,virtual,abstract与override
1.sealed---“断子绝孙”密封类不能被继承,不会有子类。密封方法可以重写基类中的方法。2.new---“你是你的,我是我的”new关键字用于显式隐藏从基类继承的成员,也就是说在使用派生类时调用的方法是new关键字新定义出来的方法,而不是基类的方法。在不使用new修饰符的情况下隐藏成员是允许的,但会生成警告。使用new显式隐藏成员会取消此警告,并使用派原创 2013-03-20 23:35:04 · 643 阅读 · 0 评论 -
.Net常见面试题整理(二)——装箱和拆箱
原文链接:http://www.cnblogs.com/zhangkai2237/archive/2013/03/21/2974570.html上一节我们讨论的是值类型和引用类型, 我们知道值类型是一种轻量级的数据结构, 对于一些简单的类型定义为值类型会减少定义成引用类型造成的系统开销以及GC的压力。但是值类型有一个缺点,就是缺少对象指针,我们不能用一个新的变量来引用栈上的值类型(No转载 2013-03-22 11:55:58 · 754 阅读 · 0 评论 -
.Net常见面试题整理(一)——值类型和引用类型
原文地址:http://www.cnblogs.com/zhangkai2237/archive/2013/03/17/2964528.html类型一直是C#中最基本的问题,关于值类型和引用类型,我想每个C#程序员都知道“值类型保存在栈上,引用类型保存在堆上”。但是仅仅知道到这里是完全不够的,我们需要理解C#中的类型,了解为什么要有值类型和引用类型以及他们的特征。一、值类型和引转载 2013-03-22 11:59:29 · 813 阅读 · 0 评论 -
C#重载运算符
本文转自MSDN:http://msdn.microsoft.com/zh-cn/library/8edha89shttp://msdn.microsoft.com/zh-cn/library/s53ehcz3使用 operator 关键字来重载内置运算符,或提供类或结构声明中的用户定义转换。若要在自定义类中重载运算符,您需要在该类中创建具有正确签名的方法。 该方法必须命名原创 2013-03-22 23:22:38 · 787 阅读 · 0 评论 -
C#父类与子类(多态性)
对多态性概念还是有点模糊,突然好奇动手写了一下代码,感觉明白了。using System;namespace 父类子类{ class Person { public Person() { Console.WriteLine("我是父类构造函数"); } public virtual原创 2013-03-23 22:18:24 · 967 阅读 · 0 评论 -
C#的6种常用集合类大比拼
C#的6种常用集合类大比拼作者:清清月儿主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.27 说明:MSDN没有说出几种集合类其间的区别,当然欲知更多细节可参考MSDN。一.先来说说数组的不足(也可以说集合与数组的区别):1.数组是固定大小的,不能伸缩。虽然System.Array.Resize转载 2013-03-04 22:30:51 · 382 阅读 · 0 评论 -
C#指针- unsafe与fixed
c#在默认情况下生成的都是安全代码,即进行了代码托管(.NET的CLR机制好处之一是 ,进行代码托管,适时的释放内存,程序员便不必考虑资源 的回收问题),而此时,指针不能出现在安全代码的编译条件下。 一、unsafe 如果因需要想在c#中使用指针,那么unsafe便是一个通道(当然在使用前,需在项目属性的生成选项中,选择“允许不安全代码”)。example 1:a转载 2013-03-24 22:02:05 · 676 阅读 · 0 评论 -
private,protected,public和internal的区别
private是完全私有的,只有在类自己里面可以调用,在类外部和子类都不能调用,子类也不能继承父类的private属性和方法protected虽然可以被外界看到,但外界却不能调用,只有自己及自己的子类可以调用(属性和方法都可以被子类所继承和调用)private和protected的共同点:外部都不可以访问private和protected的区别:在同一类中可以视为一样,继承中可以体现区别priva原创 2013-03-20 23:23:16 · 705 阅读 · 0 评论 -
C#Equals()和运算符==的区别
1.对于值类型如果对象的值相等,则相等运算符==返回True,否则返回False2.对于引用类型equals方法比较的是两个对象指向的内存空间内容是不是相同。也就是比较两个引用类型是否是对同一个对象的引用,即两个对象的内容是否相等。对于string类型,==比较字符串的值对于引用类型,==操作符类似于比较的是文件夹的路径是否相同,而equals方法比较的原创 2013-03-20 22:31:45 · 544 阅读 · 0 评论 -
Socket方法
Socket方法•------------------相关类--------------------------•IPAddress类:包含了一个IP地址•IPEndPoint类:包含了一对IP地址和端口号•--------------------方法们------------------------------•Socket (): 创建一个Socket•Bind()转载 2013-02-23 12:04:20 · 759 阅读 · 0 评论 -
c#调用Win32 API(C# DllImport用法)
大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。 DllImport所在的名字空间 using System.Runtime.InteropServices; M转载 2013-02-17 15:39:38 · 1857 阅读 · 0 评论 -
c# 程序以管理员身份运行
1.在项目中添加清单文件,如图清单文件默认内容应该是这样的: <!-- UAC 清单选项 如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换 requestedExecutionLevel 节点。转载 2013-03-10 22:55:02 · 948 阅读 · 0 评论 -
c#走出误区。
昨天看《c# in Depth》,有部分是走出误区。觉得不错,故记之。1.不少人认为引用类型在堆上,值类型在栈上,前半部分是对的,但后半部分就有问题了。假设一个类中有一个int类型的实例变量,那么这个类的任何对象中,该变量的值总是和对象中的其他数据在一起,也就是在堆上。2.对象在c#中默认是通过引用传递的。其实这种说法是错误的,引用类型作为方法参数使用时,参数默认传递是以“值传递”原创 2013-03-29 15:54:32 · 560 阅读 · 0 评论 -
c#好的程序员必须掌握的编码习惯
1.一定要用大括号括住流程控制元素,如for,while,if,switch内嵌的代码,即便只包含一行代码。2.如果语句中有else if,一定要有一个else跟着最后一个else if。3.只要使用switch在所有case后面一定要有default。4.当对字符串进行复杂操作的时候考虑用StringBuilder,StringBuilder可以在实例化的时候制定字符串需要多少空间,原创 2013-03-17 15:21:01 · 667 阅读 · 0 评论 -
c#序列化及反序列化(三种方式)
一:BinaryFormatter序列化序列化简单点来理解就是把内存的东西写到硬盘中,当然也可以写到内存中(这个内容我会在后面写一个例子).而反序列化就是从硬盘中把信息读到内存中.就这么简单,呵呵,现在来看下面的例子吧!在这篇文章中我将使用BinaryFormatter序列化类Book作为例子,希望大家能从例子中深刻体会什么是序列化.定义类Book:[Seriali转载 2013-03-15 20:48:42 · 957 阅读 · 0 评论 -
c#区分传值调用 传引用调用。
先来看一下百度百科是怎样说的:传值调用是指方法在调用参数时,不是对原参数进行操作,而是创建参数的拷贝并对进行操作,这种调用有利于保护数据传引用调用是指传递一个地址的拷贝。在c#中(以下内容转自:http://www.cnblogs.com/wang_yb/archive/2011/05/18/2050574.html):如果传递的参数是基元类型(int,float等原创 2013-03-20 17:57:02 · 617 阅读 · 0 评论 -
c#字符串常见操作
1.字符串转为比特码:byte[] byteStr=System.Text.Encoding.Default.GetBytes(str);2.字符串相加StringBuilder sb=new StringBuilder();sb.Append("aa");sb.Append("bb");sb.Append("cc");//和+等效string str="aa"原创 2013-03-20 19:53:55 · 712 阅读 · 0 评论 -
C#版的LOWORD,HIWORD,LOWBYTE,HIGHBYTE解析方法
public static ushort LOWORD(uint value) { return (ushort)(value & 0xFFFF);}public static ushort HIWORD(uint value) { return (ushort)(value >> 16);}public static byte LOWBYTE(usho原创 2013-04-23 19:27:47 · 4438 阅读 · 0 评论