C#
文章平均质量分 67
转角撞倒猪
这个作者很懒,什么都没留下…
展开
-
C# 中的整数溢出检查 checked 和 unchecked
对于因为整数类型参与算术操作和类型转换时产生的“溢出异常”——System.OverflowException,在某些算法来讲不算真正的“异常”,相反这种溢出常常为程序所用。C#通过引入checked和unchecked关键字来控制这种特殊情况的需求。它们都可以加于一个语句块前(原创 2011-08-04 19:24:22 · 5629 阅读 · 0 评论 -
C# 中的 ref 和 out 的意义和使用方法
向方法传递一个实参时,对应的形参会用实参的一个副本来初始化,不管形参是值类型(例如 int),可空类型(int?),还是引用类型,这一点都是成立的。也就是随便在方法内部进行什么修改,都不会影响实参的值。例如,对于引用类型,方法的改变,只是会改变引用的数据,但实参本身并没有变化,它原创 2011-08-08 14:49:19 · 936 阅读 · 0 评论 -
C# 中的堆和栈
栈上存储的有:值类型,引用类型本身。 堆上存储的有:引用类型的“对象”,可空类型。 代码如下:using System;using System.Collections.Generic;using System.Linq;usin原创 2011-08-08 16:10:02 · 594 阅读 · 0 评论 -
C# 中的 System.Object(object)
首先,C# 中所有类都是System.Object 的一个具体化的类型。可以使用 System.Object 来创建一个变量,这个变量能引用任何对象。object 是 System.Object 的别名。 Circle c; c = new Circle(原创 2011-08-08 16:45:08 · 731 阅读 · 0 评论 -
C# 中的装箱与拆箱
装箱:将一个数据项(副本)从栈中自动复制到堆中的行为。 int i = 8; object o = i; // 装箱 // 首先在堆中开辟出一片区域,再将 i 的一个副本放在该区域中。 // 所有引用都必须引用堆上的对象 引用关系如原创 2011-08-08 17:13:13 · 743 阅读 · 0 评论 -
C#中数据类型的安全转换(is,as)
下面代码中,不能装箱,在强制类型转换时出错,因为之前 c 是 class 类型,而却要把它转换为 int 类型,这是不可以的。虽然编译器能通过编译,但是 runtime 在运行时会抛出 InvalidCastException 异常。原创 2011-08-08 17:42:11 · 1188 阅读 · 1 评论 -
C# 中的结构类型(struct)
有时候,类中只包含极少的数据,因为管理堆而造成的开销显得极不合算。这种情况下,更好的做法是使用结构(struct)类型。由于 struct 是值类型,是在栈(stack)上存储的,所以能有效的减少内存管理的开销(当然前提是这个结构足够小)。 结构可以包含它自己的原创 2011-08-09 17:23:54 · 5174 阅读 · 0 评论 -
C# 中复制结构变量的条件及方法
C# 可以将一个 struct 变量初始化或赋值成另一个 struct 变量,但条件是操作符 = 右侧的 struct 变量已经完全初始化(也就是它的所有字段都已经初始化)。 例如,下面的代码不能通过编译,因为 now 没有被初始化:Time now;Ti原创 2011-08-09 19:01:54 · 954 阅读 · 0 评论 -
C# 中的枚举类型 enum (属于值类型)
C# 支持两种特殊的值类型:枚举和结构。 声明枚举:声明时要声明所有可能的值。using System;using System.Collections.Generic;using System.Linq;using System.Text;nam原创 2011-08-09 11:37:39 · 7917 阅读 · 0 评论 -
C# 中类和结构的区别
a原创 2011-08-09 18:10:08 · 882 阅读 · 0 评论 -
使用枚举和结构输出日期
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace structType{ class Program {原创 2011-08-09 18:48:44 · 875 阅读 · 0 评论 -
C# 中的可空值类型 null
C# 不允许把 null 赋给一个值类型的数据。在 C# 中,以下语句是非法的:int a = null; // 非法 但是,利用 C# 定义的一个修饰符,可将一个变量声明为一个可空(nullable)值类型。可空值类型在行为上与普通值类型相似,但可以原创 2011-08-05 14:01:40 · 4733 阅读 · 0 评论 -
C# 中的值类型和引用类型
值类型(value type):int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。 引用类型(reference type):strin原创 2011-08-08 12:33:34 · 1184 阅读 · 1 评论 -
C# 中的 null
C# 允许将 null 值赋给任意引用变量。值为 null 的变量表面该变量不引用内存中的任何对象。如下所示:Circle c = new Circle();Circle copy = null;if(copy == null){ copy =原创 2011-08-05 13:23:39 · 827 阅读 · 0 评论 -
C#中静态方法和非静态方法的定义及调用
static method and non-static menthodusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Cash原创 2011-08-03 18:59:55 · 9524 阅读 · 1 评论 -
TextHello - 在 Console Application 下创建第一个C#程序
哈哈,终于开始写第一篇技术博客,初入IT行业,加油!创建一个 Console Application ,输入以下代码。using System; //using 后面跟的都是命名空间,比如System 命名空间后面跟着C原创 2011-08-03 18:35:00 · 2141 阅读 · 0 评论 -
C# 中的 Infinity 和 NaN
C#语言中,对于 int,long 和 decimal类型的数,任何数除以 0 所得的结果是无穷大,不在int,long 和 decimal 类型的范围之内,所以计算 6/0 之类的表达式会出错。 但是,double 和 float 类型实际上有一个可以表示无穷原创 2011-08-04 16:02:56 · 11817 阅读 · 0 评论 -
C# 中 finally 的用法
当一个异常抛出时,它会改变程序的执行流程。因此不能保证一个语句结束后,它后面的语句一定会执行。为了确保一个语句总是能执行(不管是否抛出异常),需要将该语句放到一个 finally 块中,finally 要么紧接在 try 块之后,要么紧接在 try 块之后的最后一个 catc原创 2011-08-04 19:48:04 · 23148 阅读 · 0 评论 -
C# 中的异常捕捉(try)和异常处理(catch)
为了捕捉异常,代码要放到一个 try 块中(try 是 C# 关键字)。代码运行时它会尝试执行 try 块内的所有语句。如果没有任何语句产生一个异常,这些语句将一个接一个运行,直到全部完成。然而,一旦出现异常,就会跳出 try 块,并进入一个 catch 处理程序中执行。原创 2011-08-04 18:17:25 · 8609 阅读 · 1 评论 -
C# 中 throw ( 抛出异常 )的用法
throw 用来抛出异常,可自己编写代码,抛出所需要的异常。代码如下: class Program { static void Main(string[] args) { int month原创 2011-08-04 20:07:42 · 30700 阅读 · 1 评论 -
C# 8中基本数据类型的可空值类型
C# 8中基本数据类型除了 string 外,int、long、float、double、decimal、Char、bool都可以声明为可空类型,且在方法中使用时也没有可空值类型必须在非可空值类型后面的限制。 对于 string 类型,可以用 string.Em原创 2011-08-05 14:19:47 · 4472 阅读 · 0 评论 -
C# 中的默认构造器和重载构造器
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace AreaClass{ class Program {原创 2011-08-05 09:57:21 · 2396 阅读 · 1 评论 -
C# 中 string.Empty、""、null的区别
一、string.Empty和 ""1、Empty是string类中的一个静态的只读字段,它是这样定义的:// Summary:// Represents the empty string. This field is read-only.public s原创 2011-08-05 16:48:32 · 2238 阅读 · 0 评论 -
C#中可选参数和命名参数的定义及使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 可选参数和命名参数{ class Program {原创 2011-08-03 19:30:59 · 6866 阅读 · 0 评论 -
C# 中的数组(array)
数组是一个无序的元素序列。数组元素存储在一个连续性的内存块中,并可使用一个整数索引来访问。声明数组变量时,数组的大小不是声明的一部分。 int[] dogs; // 声明数组 // 声明时不需要指定数组的大小只有在实际创建数组实例的时原创 2011-08-11 11:24:45 · 3478 阅读 · 2 评论