C#基础知识文章关闭所有内容预览 | 展开所有内容预览
-
C#语言的特点
[内容预览]
672 | 2010-09-03
C# 具有如下主要特点: (1)简单——相对于复杂的C++,C# 的语言简单,开发高效。例如,在安全上下文中,C# 没有指针,不许直接存取内存。用统一的“.”操作符,代替了C++中的“::”、“.”和“->”操作符。使用统一的类型系统,抛弃了C++的多变类型系统(如int的字节数、0/1转布尔值等)。 (2)现代——很大程度上由.NET框架体现。...
[阅读全文]
-
C#中的抽象类
[内容预览]
145 | 2010-09-03
本文介绍了C# 中抽象类的定义及使用方法: (1)声明一个抽象方法使用abstract关键字。 (2)一个类中可以包含一个或多个抽象方法。 (3)抽象类中可以存在非抽象的方法。 (4)抽象类不能被直接被实例化。 (5)实现抽象类用“:”(冒号),实现抽象方法用override关键字。 (6)抽象类可以被抽象类所继承,结果仍是抽象类。 (7)抽象方法被实现后,不能更改修饰符。 演示例...
[阅读全文]
-
C# 3.0新特性之隐含类型var
[内容预览]
237 | 2010-09-03
一.var类型小介 在C#3.0中增加了一种变量声明类型:var,它与JavaScript 的 var类似,但也有不同。 1. 相同点,它可以用var来声明任何类型的局部变量。 2. 不同点,它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。 先说一下相同点 它可以声明 var integer = 10; ...
[阅读全文]
-
C#字符串对象的不可变性
[内容预览]
555 | 2010-09-01
字符串对象是不可变的:即它们创建之后就无法更改。所有看似修改字符串的 String 方法和 C# 运算符实际上都以新字符串对象的形式返回结果。 在下面的示例中,当连接 s1 和 s2 的内容以形成一个字符串时,不会修改两个原始字符串。+= 运算符会创建一个包含组合内容的新字符串。这个新对象赋给变量 s1,而最初赋给 s1 的对象由于没有其他任何变量包含对它的引用而释放,用于垃圾回收。 st...
[阅读全文]
-
C#数组
[内容预览]
271 | 2010-09-01
数组是一种数据结构,它包含若干相同类型的变量。数组是使用类型声明的: type[] arrayName; 数组类型是从抽象基类型 Array 派生的引用类型。由于此类型实现了 IEnumerable 和 IEnumerable<T>,因此可以对 C# 中的所有数组使用 foreach 迭代。 数组具有以下属性: (1)数组可以是一维、多维或交错的。 (2)数值数组元素的默认值设置为零,而...
[阅读全文]
-
C#中的注释
[内容预览]
511 | 2010-08-31
C#有两种常用注释形式: 1、多行注释(multiline comment) 这种类型的注释必须以/*开始,以*/结束。在这两个符号中间的任何东西都被看做注释,而编译器忽略其中的内容不进行编译。但要注意,这种注释不允许嵌套,即注释中出现这两个符号。 2、单行注释(single-line comment) 单行注释使用 //,这一行//后面的内容都被看做注释内容。 编程者常用多行注释来书写...
[阅读全文]
-
C#语言简介
[内容预览]
265 | 2010-08-29
C#(发音为“See Sharp”)是简单、现代、面向对象和类型安全的编程语言。C#起源于C语言家族,因此,C,C++和Java的程序员很快就能熟悉它。C#已经获得了ECMA International和ISO/IEC的国际标准认证,它们分别是ECMA-334标准和ISO/IEC 23270标准。Microsoft用于.NET框架的C#编译器就是根据这两个标准实现的。 C#是面向对象的语言,但...
[阅读全文]
-
用C#读取图片的EXIF信息的方法
[内容预览]
595 | 2010-08-28
我们首先介绍一下什么是EXIF。EXIF是一种图像文件格式,只是文件的后缀名还是沿用大家熟悉的jpg而已。EXIF是英文Exchangeable Image File(可交换图像文件)的缩写,最初由日本电子工业发展协会(JEIDA --Japan Electronic Industry Development Association) 制订的,目前的版本是修改发表于1998年6月的2.1版。国际标...
[阅读全文]
-
关于C#中DateTime的使用
[内容预览]
541 | 2010-08-28
DateTime的常用方法如下: System.DateTime currentTime=new System.DateTime(); //得到当前的时间 取当前年月日时分秒 currentTime=System.DateTime.Now; 取当前年 int 年=currentTime.Year; 取当前月 int 月=currentTime.Month; 取当前日 int 日=curr...
[阅读全文]
-
让Foreach 循环运行更快的方法
[内容预览]
251 | 2010-08-23
foreach是一个对集合中的元素进行简单的枚举及处理的现成语句,用法如下例所示: using System; using System.Collections; namespace LoopTest { class Class1 { static void Main(string[] args) { // create an ArrayList...
[阅读全文]
-
C#的面向对象性
[内容预览]
163 | 2010-08-15
你不会预料一种新语言不支持面向对象的功能吧? C#当然支持所有关键的面向对象的概念,如封装、继承和多态性。完整的C#类模式构建在NGWS runtime的虚拟对象系统(VOS,Virtual Object System)的上层。对象模式只是基础,而不再是编程语言的一部分。 你一开始必须关注的,就是不再有全局函数、变量或者是常量。所有的东西都被封装在类中,包括实例成员(通过类的实例—&...
[阅读全文]
-
通过一个错误认识一下枚举类型
[内容预览]
211 | 2010-08-09
项目中,一同事定义了个枚举,而我在根据此枚举做判断的时候,出了一些逻辑性的错误。导致错误的原因是C#中对枚举值的自增、不唯一的问题,然后通过实际的代码,测试了枚举的一些特性。 1.枚举名可以是中文。枚举的类名必须跟其他类的类名命名规则一样,而枚举的名字可以是中文,但是不能相同。 可以定义下面这样的枚举。 public enum Weekdays { 星期一, 星期二, 星期三,...
[阅读全文]
-
[图文] C#中访问私有成员的方法
[内容预览]
423 | 2010-08-04
首先我必须承认访问一个类的私有成员不是什么好做法。大家也都知道私有成员在外部是不能被访问的。而一个类中会存在很多私有成员:如私有字段、私有属性、私有方法。对于私有成员访问,可以套用下面这种非常好的方式去解决。 private string name; public string Name { get { return name; } set { name = va...
[阅读全文]
-
参数修饰符ref,out ,params的区别
[内容预览]
279 | 2010-08-04
params 关键字可以指定在参数数目可变处采用参数的方法参数。 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。 示例 // cs_params.cs using System; public class MyClass { public static void UseParams(params int[] lis...
[阅读全文]
-
C#中判断空字符串的方法
[内容预览]
394 | 2010-06-13
在C#中可以使用3种方法来判断字符串是否为空字符串,具体为: string a=""; (1)if(a=="") (2)if(a==String.Empty) (3)if(a.Length==0) 上面三种方法都是等效的,但究竟那一种方法性能较好呢?下面通过实验来说明。 建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test )...
[阅读全文]
-
c#中使用Split分割字符串的方法
[内容预览]
618 | 2010-05-28
使用Split来分隔字符串有时是非常重要的一个技巧,本文对split的用法做了一些简单的总结,希望能够对大家有所帮助。下面介绍几种方法: 第一种方法:打开vs.net新建一个控制台项目。然后在Main()方法下输入下面的程序。 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArr...
[阅读全文]
-
C#中如何实现左截取和右截取字符串
[内容预览]
6628 | 2010-05-27
有时,我们需要截取一个字符串左边的若干个字符或者截取字符串右边的若干个字符,在VB中可以使用left或right函数实现,而在C#中没有提供这样的函数。实际上,C#中提供了一个截取字串的函数Substring同样也可以实现相关功能,具体介绍如下: s.Substring(0,i) 返回 左边的i个字符 s.Substring(s.Length-i,i) 返回 右边的i个字符 int i=2;...
[阅读全文]
-
将combobox绑定到数据库表后,怎样取各个字段的值
[内容预览]
1227 | 2010-05-27
问: comboBox1.DataSource = ds.Tables ["zone"]; comboBox1.DisplayMember = "zonename"; 将表zone的zonename字段绑定并显示在combobox1中,表zone包含zoneid,zonename两个字段,在程序中有时候取zonename, 有时候取其对应的zoneid,该怎么取? 答: comboB...
[阅读全文]
-
c#数据库连接字符串集合
[内容预览]
567 | 2010-05-27
本文介绍了C#连接常用数据库的常用方法,供大家进行设计数据库程序时参考。 (一)常用连接: (1)使用SqlConnection对象: public void SqlConnectionOpen() { SqlConnection conn= new SqlConnection(); conn.ConnectionString = "user id=sa;password=;initi...
[阅读全文]
-
如何在Datagridview里删除选中的行
[内容预览]
2589 | 2010-05-27
本文讲解了如何在DataGridView中删除选中行的方法,具体代码如下: while (dataGridView1.SelectedRows.Count > 0) { DataRowView drv = dataGridView1.SelectedRows[0].DataBoundItem as DataRowView; drv.Delete(); } ...
[阅读全文]
-
实例讲解C#控件StatusStrip
[内容预览]
1566 | 2010-05-27
StatusStrip是Form中的一个控件,同时也是一个比较大的控件,其中含有许多子控件,这些子控件存放在控件群中。 这样我们要使用StatusStrip时,首先要定义StatusStrip,然后定义ToolStrip控件,再次定义ToolStrip控件群,第三将ToolStrip控件加入到控件群中,第四将控件群加入到StatusStrip中,最后要将StatusStrip加入到窗体中。 举...
[阅读全文]
-
[图文] 如何去除字符串中间的空格
[内容预览]
2276 | 2010-05-08
使用Trim只能去除字符串前端和后端的空ge,那么字符串中间的空ge如何去掉呢?下面给出一个完整的程序: using System; using System.Collections.Generic; using System.Text; class TrimAll { string trimAllSpace(string str) { string temp = ""; ...
[阅读全文]
-
[图文] C#中的字符串类
[内容预览]
767 | 2010-05-08
在C#语言中,string 类型是引用类型,其表示零或更多个Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。其定义方法如下: string s1="";//这是一个空字符串 string s2="hello,everyone!"; //非空字符串 可以使用"+"把两个字符串连接起来。如: string s3="中国"+" 北京"; ...
[阅读全文]
-
C#的装箱与拆箱
[内容预览]
1412 | 2010-05-08
装箱(boxing)和拆箱(unboxing)是.NET提出得新概念!我们知道C#的所有类型都是由基类System.Object派生来的。如果在声明这些数据类型的时候都在堆(HEAP)中分配内存,会造成极低的效率。 为了解决这个问题,.NET的值类型在栈中分配内存,而引用型是在堆中分配内存,初始化为null,引用类型是需要通过垃圾回收器来回收内存,而值类型超过其作用域,就会失效。 有时我们需要...
[阅读全文]
-
[图文] C#数据类型的转换
[内容预览]
628 | 2010-05-08
总体来看,C#数据类型的转换包括隐式转换和显示转换两种。隐式转换,即不同数据类型之间能自动完成的转换,无须人为干预,一般情况是由低精度的数据类型向高精度的数据类型转换。显示转换,即强制转换,必须人为地用一定方法完成的转换。我们先看看C#中的隐式转换。 1、隐式转换 我们用一个例子来说明一下: using System; class Class1 { static void Ma...
[阅读全文]
-
浅谈对C#命名的认识
[内容预览]
314 | 2010-05-08
1. 命名时单词的开头字符都要大写 如: public class StudentClass { private string StudentName; private char StudentSex; public string RetStudName() { return StudentName; } } 2. 命名时,第一个单...
[阅读全文]
-
C#中的常量
[内容预览]
436 | 2010-05-08
见名知义,就是在程序的运行过程中,其值不能被改变的量。声明方法只要在声明普通变量时,前面加上const关键字就可以了,但必须初始化,举个例子如下: const int a = 23; 这里的a就是常量,其值为23,在程序运行过程中不能改变了。如: a = 34; 这样的写法是错误的,将不能通过编译。 常量在程序设计过程中有什么用呢?我们可以想象一下,假设你的老板让你编写一个处理各种圆形、...
[阅读全文]
-
[图文] C#的结构类型
[内容预览]
864 | 2010-05-08
有时我们可能对同一事物使用多个不同的变量来描述,如果将其分开来,显得不够灵活。结构类型很好的解决了这个问题,它把多个不同的变量组织在一起。其定义方法如下: struct 结构名称 { 成员声明列表; } 成员可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等。每个成员在声明的时候都采用如下的格式: 访问修饰符 类型 名称; 假设我们想描述一个点的位置和颜色,...
[阅读全文]
-
[图文] C#程序中的变量
[内容预览]
308 | 2010-05-08
本文讲解了C#变量的命名方法和具体使用方法,这是很基础的东西,但用得又是非常多的。 变量,从其名字中,我们就可以知道,是在程序运行过程中,其值可以被改变。于其它语言一样,C#变量在使用过程中也应该遵循一定的规则。 C#中的变量必须先定义后使用,这毫无疑问。 1.C#变量的命名规则 (1)开头字符必须是字母,下划线或@; (2)C#变量不能使用C#语言的保留字,库函数名称; (...
[阅读全文]
-
C#的引用类型
[内容预览]
366 | 2010-05-08
本篇文章粗略地说明了C#引用类型的种类和含义,如有对C#引用类型有疑问的可以参考一下,但对于引用类型的理解可能有误,希望高手能留言指教。 C#中的主要引用类型有:数组,类,接口和委托。即,这些数据类型在内存中不存储真正的值,而存储的是值的地址。 值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。注意,堆和堆栈是两个不同的概念,在内存中的...
[阅读全文]