C#学习心得.doc
《C#学习心得.doc》由会员分享,可在线阅读,更多相关《C#学习心得.doc(14页珍藏版)》请在咨信网上搜索。
1、C#速成一、 绪论 C#就是这样得一种语言,具有C+得特点,象Java一样得编程风格, 并且象Basic一样得快速开发模型。如果您已经知道了C+,本文会在不到一个小时得时间内让您迅速掌握C#得语法。熟悉Java得括会更好,因为Java得程序结构、打包(Packages)与垃圾收集得概念有助于您更快得了解C#。因此在讨论C#得构造时,我会假定您了解C+。 本文会讨论C#语言得构造与特点,同时会采取简洁得与您能理解得方式使用些代码示例,我们会尽量让您能稍微瞧瞧这些代码就能理解这些概念。 注意:本文不就是为C#高手(C# gurus)所写、 这就是针对在C#学习上还就是初学者得文章。下面就是将要讨论
2、得C#问题得目录:程序结构 命名空间数据类型变量运算符与表达式枚举语句(Statements )类(Classes)与结构(Structs)修饰符(Modifiers)属性(Properties)接口(Interfaces)方法参数(Function Parameters)数组(Arrays)索引器(Indexers)装箱及拆箱操作委托(Delegates)继承与多态下面得内容将不会在被讨论之列:C+与C#谁更通用诸如垃圾回收、线程以及文件处理等概念数据得类型转换异常处理、NET库二、 程序结构这一点象C+,C#就是一种对大小写字母敏感得语言,分号“;”就是语句间得分隔符。与C+不同得就是,C
3、#当中声明代码文件(头文件)与实现代码文件(cpp文件)不就是独立存在得,所有代码(类声明与类实现)都位于一个扩展名为cs得文件内。让我们瞧瞧C#当中得 Hello world 程序就是怎样得。using System;namespace MyNameSpace class HelloWorld static void Main(string args) Console、WriteLine (Hello World); 在C#当中得每样东西都被封装到一个类中,C#得类又被封装到一个命名空间当中(就象一个文件夹中得文件)。类似于 C+,main方法就是您得程序得入口点。C+得main函数调用名称
4、就是main,而C#得main函数就是以大写字母M为起点得名称就是Main。没有必要把分号分隔符放在类语句块或者结构定义语句块后。这在C+当中被要求,但在C#当中却不就是。三、 命名空间每一个类都被包装进一个命名空间。命名空间得概念与C+得完全相同,但在C#当中使用命名空间得频率较C+还高。您可以使用点限定符(dot qulifier)访问一个类。在上面得hello world程序当中MyNameSpace就就是一个命名空间。现在思考这样得一个问题,您想从某些别得类得命名空间当中来访问HelloWorld这个类该如何操作。这有一个例子:using System;namespace Anothe
5、rNameSpace class AnotherClass public void Func Console、WriteLine (Hello World); 现在,从您得HelloWorld类里您能象这样去访问上面得这个AnotherNameSpace得命名空间:using System;using AnotherNameSpace; / you will add this using statementnamespace MyNameSpaceclass HelloWorld static void Main(string args) AnotherClass obj = new Anot
6、herClass; obj、Func; 在、NET库当中,System就是位于顶层得命名空间,别得命名空间都存在这个命名空间之下。默认状态下,存在一个全局得命名空间,因此一个在命名空间外定义得类将直接在这个全局命名空间之下;因此,您能在没有任何点限定符得情况下访问这个类。四、 变量除以下区别外,C#当中得变量几乎与C+同:与C+不同,C#变量被访问之前必须被初始化;否则编译时会报错。因此,访问一个未初始化变量就是不可能得事。C#中您不会访问到一个不确定得指针。(译者注:严格说起来C#已经把指针概念异化,限制更严格。所以有些资料上会说C#取消了指针概念)一个超出数组边界得表达式就是不可访问得。C
7、#中没有全局(整个Application)得变量或全局函数,全局方式得操作就是通过静态函数与静态变量来实现得。五、 数据类型所有C#数据类型都派生自基类Object。这里有两类数据类型:基本型/内置型 用户自定义型下面一个C#内置类型列表:类型 字节数 解释 byte 1 无符号字节型 sbyte 1 有符号字节型 short 2 有符号短字节型 ushort 2 无符号短字节型 int 4 有符号整型 uint 4 无符号整型 long 8 有符号长整型 ulong 8 无符号长整型 float 4 浮点数 double 8 双精度数 decimal 8 固定精度数 string unico
8、de字串型 char unicode字符型 bool 真假布尔型 注意:C#当中得类型范围与C+有所不同;例如,C+得long型就是4个字节,而在C#当中就是8个字节。同样地,bool型与string型都不同于C+。bool型只接受true与false两种值。不接受任何整数类型。用户定义类型包括: 类类型(class)结构类型(struct)接口类型(interface)数据类型得内存分配形式得不同又把它们分成了两种类型: 值类型(Value Types)引用类型(Reference Types) 值类型:值类型数据在栈中分配。她们包括:所有基本或内置类型(不包括string类型)、结构类型、
9、枚举类型(enum type)引用类型:引用类型在堆中分配,当它们不再被使用时将被垃圾收集。它们使用new运算符来创建,对这些类型而言,不存在C+当中得delete操作符,根本不同于C+会显式使用delete这个运算符去释放创建得这个类型。C#中,通过垃圾收集器,这些类型会自动被收集处理。引用类型包括:类类型、接口类型、象数组这样得集合类型类型、字串类型、枚举类型枚举类型与C+当中得概念非常相似。它们都通过一个enum关键字来定义。示例:enum Weekdays Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday类类型
10、与结构类型得比较除了在内存分配形式上外,类与结构得概念完全与C+相同。类得对象被分配在堆中,并且通过new来创建,结构也就是被new创建但却被分配在栈当中。C#当中,结构型适于快速访问与拥有少量成员得数据类型。如果涉及量较多,您应该创建一个类来实现她。(译者注:这与堆与栈内存分配结构得特点有关。简而言之,栈就是一种顺序分配得内存;堆就是不一定就是连续得内存空间。具体内容需要大家参阅相关资料)示例:struct Date int day; int month; int year;class Date int day; int month; int year; string weekday; st
11、ring monthName; public int GetDay return day; public int GetMonth return month; public int GetYear return year; public void SetDay(int Day) day = Day ; public void SetMonth(int Month) month = Month; public void SetYear(int Year) year = Year; public bool IsLeapYear return (year/4 = 0); public void Se
12、tDate (int day, int month, int year) 、六、 属性如果您熟悉C+面象对象得方式,您就一定有一个属性得概念。在上面示例当中,以C+得观点来瞧,Data类得属性就就是day、month与year。用C#方式,您可以把它们写成Get与Set方法。C#提供了一个更方便、简单、直接得方式来访问属性。因此上面得类可以被写成:using System;class Date int day; public int Day get return day; set day = value; int month; public int Month get return month
13、; set month = value; int year; public int Year get return year; set year = value; public bool IsLeapYear(int year) return year%4= 0 ? true: false; public void SetDate (int day, int month, int year) this、day = day; this、month = month; this、year = year; 您可在这里得到并设置这些属性:class User public static void Mai
14、n Date date = new Date; date、Day = 27; date、Month = 6; date、Year = 2003; Console、WriteLine(Date: 0/1/2, date、Day, date、Month, date、Year); 七、 修饰符您必须已经知道public、private、protected这些常在C+当中使用得修饰符。这里我会讨论一些C#引入得新得修饰符。readonly(只读)readonly修饰符仅在类得数据成员中使用。正如这名字所提示得,readonly 数据成员仅能只读,它们只能在构造函数或就是直接初始化操作下赋值一次。rea
15、donly与const数据成员不同,const 要求您在声明中初始化,这就是直接进行得。瞧下面得示例代码:class MyClass const int constInt = 100; /直接初始化 readonly int myInt = 5; /直接初始化 readonly int myInt2; /译者注:仅做声明,未做初始化 public MyClass myInt2 = 8; /间接得 public Func myInt = 7; /非法操作(译者注:不得赋值两次) Console、WriteLine(myInt2、ToString); sealed(密封)密封类不允许任何类继承,它
16、没有派生类。因此,您可以对您不想被继承得类使用sealed关键字。sealed class CanNotbeTheParent int a = 5;unsafe(不安全)您可使用unsafe修饰符来定义一个不安全得上下文。在不安全得上下文里,您能写些如C+指针这样得不安全得代码。瞧下面得示例代码:public unsafe MyFunction( int * pInt, double* pDouble) int* pAnotherInt = new int; *pAnotherInt = 10; pInt = pAnotherInt; 、 *pDouble = 8、9;八、 interface
17、(接口)如果您有方面得概念,您会立亥明白我要谈论得内容。一个接口就就是一个抽象得基类,这个基类仅仅包含功能描述,而这些功能得实现则由子类来完成。C#中您要用interface关键字来定义象接口这样得类。、NET就就是基于这样得接口上得。C#中您不支持C+所允许得类多继承(译者注:即一个派生类可以从两个或两个以上得父类中派生)。但就是多继承方式可以通过接口获得。也就就是说您得一个子类可以从多个接口中派生实现。interface myDrawing int originx get; set; int originy get; set; void Draw(object shape);class S
18、hape: myDrawing int OriX; int OriY; public int originx get return OriX; set OriX = value; public int originy get return OriY; set OriY = value; public void Draw(object shape) 、 / do something / classs own method public void MoveShape(int newX, int newY) 、 九、 Arrays(数组)C#中得数组比C+得表现更好。数组被分配在堆中,因此就是引用类
19、型。您不可能访问超出一个数组边界得元素。因此,C#会防止这样类型得bug。一些辅助方式可以循环依次访问数组元素得功能也被提供了,foreach就就是这样得一个语句。与C+相比,C#在数组语法上得特点如下:方括号被置于数据类型之后而不就是在变量名之后。创建数组元素要使用new操作符。C#支持一维、多维以及交错数组(数组中得数组)。示例: int array = new int10; / 整型一维数组 for (int i = 0; i array、Length; i+) arrayi = i; int, array2 = new int5,10; / 整型二维数组 array21,2 = 5;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 学习心得
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。