【C#】与C及OC的不同点

简介:

事实上熟悉这些语言的朋友们深知,这几个语言全然没有可比性。

因为工作须要,近期须要重温C#语言,难免会受到C和OC的基础知识影响。

此篇是本人的一个学习笔记。仅此献给有C/OC基础,须要继续学习C#的朋友们。


博文首发地址:http://blog.csdn.net/duzixi


今后不断更新。欢迎大家补充修正(最后更新日期:2014.11.6)


 第1讲 基础:常量 变量 运算符 表达式 语句
***** C#提供的基本类型很多其它。划分更细

***** C#里bool类型就是bool类型,严格差别于整形

***** C#中的控制台输入都是字符流。获取其他类型须要用Parse方法转化
int a = int.Parse(Console.Readline());

***** C#的声明与实现不分离
《C#本质论 (第三版)》p.121


 第2讲 分支结构
***** C#里switch case 中 switch表达式的值还能够是字符串类型

 第3讲 循环结构  数组

***** C#的数组本质是System.Array 的对象。

它是全部数组类型的抽象基类型。

必须进行实例化。

声明数组时,方括号 ([]) 必须跟在类型后面。而不是标识符后面,且数组的大小不是其类型的一部分。

如:
bool[], byte[], int[],  float[], double[], string[], 

*****  C#里二维数组和数组的数组(交错数组)是两个东西
二维数组定义:
string[,] names;
交错数组 (jagged array)
byte[][] scores;
http://msdn.microsoft.com/zh-cn/library/aa288453(v=vs.71).aspx

***** C#里数组能够直接赋值,可是和C一样不能直接做加减运算

 第4讲 枚举和结构体
***** C#中枚举不是一个单纯的整形常量
http://msdn.microsoft.com/zh-cn/library/cc138362.aspx

***** C#中的结构体更强大、更灵活。里面能够直接包括方法

***** C#中结构体的成员变量类型修饰符必须是public
结构能够实现接口。但它们无法继承还有一个结构。 因此,结构成员无法声明为 protected
http://msdn.microsoft.com/zh-cn/library/ah19swz4.aspx

 第5讲 引用类型 字符串
***** C#有独特的引用类型。是装箱获得的
值类型装箱后会被扔到堆里
http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

***** C#的字符串是一个类

 第6讲 类

***** C#的类里包括方法、属性、字段、事件、托付以及内部嵌套的类等
http://msdn.microsoft.com/zh-cn/library/ms173113.aspx
一个类可包括下列成员的声明:
构造函数(Constructor)
析构函数
常量(Const)
字段(Field)
方法(Method)
属性(Property)
索引器 (Indexers)
运算符(Operator)
事件(Event)
托付(Delegate)
(Class)
接口(Interface)
结构(Struct)

***** C#里的修饰符特别丰富、能够修饰好多东西
1.訪问级别、控制有效范围和权限的:public protected private internal
2.控制内存分配区域的:static const
3.声明函数參数的:ref out params
4. 虚实:virtual
http://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx

***** 訪问权限

在其它选件类中能够直接在命名空间内声明的选件类,未嵌套。能够是 公开 或 内部。 默认情况下选件类是 internal

类成员,包含嵌套选件类,能够是 公开protected internal保护内部或 专用。 默认情况下成员是 专用

http://msdn.microsoft.com/zh-cn/library/0b0thckt.aspx

***** C#的属性
能够是仅仅写的
在字段的基础上创建,属性开头字母是大写的

***** C#的函数仅仅能在类里面定义

***** C#有密封类

***** C#有base语句
构造函数能够使用 base keyword来调用基类的构造函数。
http://msdn.microsoft.com/zh-cn/library/ms173115.aspx

 第7讲 方法(函数)

***** C#的方法仅仅能出如今类和结构体里

***** C#里有方法签名的概念
方法名 參数 及 參数类型
http://msdn.microsoft.com/zh-cn/library/ms173114.aspx

***** C#的函数參数是有修饰符的
ref:引用參数
out:输出參数
params:一维数组

***** C#通过析构函数释放内存资源

***** C#有虚方法
http://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx

***** C#中称之为方法签名


 第8讲 面向对象
***** C#中有继承关系的两个类分别叫基类和派生类
当基类将方法声明为  virtual 时。派生类能够用自己的实现 重写该方法。 
http://msdn.microsoft.com/zh-cn/library/ms173149.aspx?sentenceGu=431ef25c6bea78755c146f18e5e213ae#mt9

***** C#的多态比較多态,有多种实现方式

 第9讲 静态类和抽象类

***** 静态类和抽象类是C#独有的

 第10讲 接口和泛型
***** C#的接口类似OC的协议
http://blog.csdn.net/byondocean/article/details/6871881


 第11讲 集合
***** C#的集合分为泛型集合和非泛型集合
http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx


 第12讲 托付和事件
***** C#的托付类似于C的函数指针。可是类型安全。已经被封装成了一个类型

***** C#的观察者设计模式由托付和事件来实现

 第13讲 反射
***** 反射是C#独有的


总的来说,感觉C#的修饰符特别的丰富,关于修饰符的内容还在整理中。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5331972.html,如需转载请自行联系原作者

相关文章
|
1月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
1月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
1月前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。
|
1月前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
1月前
|
人工智能 C# 云计算
C#编程的未来发展趋向
【4月更文挑战第21天】C#编程未来将深化跨平台支持,强化云计算与容器技术集成,如.NET Core、Docker。在AI和ML领域,C#将提供更丰富框架,与AI芯片集成。语言和工具将持续创新,优化异步编程,如Task、async和await,提升多核性能。开源生态的壮大将吸引更多开发者,共创更多机遇。
|
1月前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
1月前
|
开发框架 安全 .NET
C#编程高手的成长之路
【4月更文挑战第21天】本文揭示了成为C#编程高手的路径:牢固掌握基础知识和面向对象编程,深入了解C#特性如泛型和委托,精通ASP.NET等框架工具,养成良好编程习惯,持续学习实践并参与开源项目,勇于挑战创新。通过这些步骤,不断提升编程技能,迈向C#编程的巅峰。
|
1月前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写"Hello, World!"程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
1月前
|
设计模式 IDE 测试技术
提升 C#编程效率的技巧与方法
【4月更文挑战第20天】提升C#编程效率的关键技巧包括:选择合适的IDE(如Visual Studio)、掌握基础语法、规划良好代码结构、使用代码生成工具、复用代码、利用库和框架、定期重构、应用设计模式、避免过度设计、进行代码审查、自动化测试、学习新技术、养成良好编程习惯、定期备份代码及参与技术社区。通过这些方法,开发者能提高代码质量和开发效率。