c# 程序设计教程笔记
- 值类型:[简单类型[整数类型(sbyte,byte,short,ushort,int uint,long....),字符类型),布尔类型,实数类型],结构类型, 枚举类型]。
- 引用类型:[类,委托,数组,接口]。
- 值类型变量的内存储的是实际数据,而引用类型变量在其内存空间中存储的是一个指针,该指针指向存储数据的另一块内存位置。
- 显示转换又叫强制类型转换与隐式转换相反,显示转换需要用户明确的指定转换类型,一般在不存在该类型的隐式转换是才用。
- 装箱转换是指将一个值类型的数据隐式地转换成一个对象类型的数据,把一个值类型装箱,就是创建一个object类型的实例。
- 拆箱转换是将一个对象类型的数据显示地转换成一个值类型数据。
- sizeof(类型)运算符求值类型数据在内存中占用的字节数。int类型是占4个字节, 一个字节是8位。
- 三元运算符 max=a>b?a:b 计算过程是 当a>b时max=a,否则max=b.
- 位运算符就是把<<(左移)或者<<(右移)把左边的数字换成二进制,然后根据规则在二进制数中移动右边相应的位数;
class Program { static void Main(string[] args) { int[,] num = new int[, ]; for (int i = ; i < ; i++) { for (int j = ; j < -i; j++) { Console.Write(" "); } for (int k = ; k < i; k++) { if (k == || k == ) { num[i, k] = ; } else num[i, k] = num[i - , k] + num[i - , k - ]; Console.Write(num[i,k].ToString()+" "); } Console.WriteLine(); } Console.Read(); } }
杨辉三角
- Array类是所有数组类型的抽象基类型,它提供了创建,操作,搜索,排序数组的方法。在c#中数组实际上是对象。
- 面向对象的程序设计是一种基于结构分析的,以数据为中心的程序设计方法,其总体思路是,将数据及处理这些数据的操作封装到一个成为类的数据结构中,在程序中使用的是类的示例,即类的对象。
- 类和对象:通常把具有同样性质和功能的事物所构成的整体叫做类,也可以把具有相同内部存储结构和相同操作的对象看成同一类。
- 属性、方法和事件:属性是对象的状态和特点。
- 封 装:就是将用来描述客观事物的一组数据和操作封装在一起,形成一个类。被封装的数据和操作必须通过所提供的公共接口才能够外界所访问,具有私有访问权限的 数据和操作是无法从外界直接访问的,只有通过封装体内的方法才可以访问,这就是封装的隐藏性,隐藏性增加了数据的安全性。
- 继承:当一个新类继承了原来类所有的属性和操作,并且增加了属于自己的新属性和新操作,则称这个类为派生类,原来的类是派生类的基类,基类和派生类之间存在着继承关系。
- 重载:就是方法名称相同,但参数类型和参数个数不同就会有不同的具体实现。
- 重写:就是不但方法名称相同,同时参数类型和参数个数也相同但有不同的具体实现。
- 面向对象的有点:维护简单、可扩充性、代码重用。(面向对象的三大特征:继承、封装、多态)。
- 构造函数的性质:构造函数的名称与类的名称相同;构造函数尽管是一个函数,但没有任何类型,既不属于返回值函数也不属于void函数;一个类可以有多个构造 函数,但是所有构造函数的名称都必须相同,它们的参数各不相同,即构造函数可以重载;当类对象创建时,构造函数会自动地执行。
- 析构函数:在对象不再需要时,希望确保函数所占的存储空间能被收回,c#中提供了析构函数用于专门释放被占用的系统资源。
- 析构函数的性质:在类对象销毁时自动执行;一个类只能有一个析构函数,而且析构函数没有参数,即析构函数不能重载;析构函数的名称是“~”加上类的名称(中间无空格);与构造函数一样,析构函数也没有返回类型;析构函数不能被继承。
- 引用型参数:以ref修饰符声明的参数属于引用型参数。引用型参数本身并不创建新的存储空间,而是将实参的存储地址传递给形参,所以对形参的修改会影响原来实参的值。在调用方法前,引用型参数必须被初始化,同时在调用方法时对应引用型参数的实参也必须使用ref修饰。
- 输 出参数:以out修饰符声明的参数属于输出参数。与引用型参数类似,输出型参数也不开辟心的内存区域,它与引用型参数的差别在于,调用方法前无需对变量进 行初始化,输出型参数用于传递方法返回的数据,out修饰符后应跟随与形参类型相同的类型,用来声明在方法返回后传递的变量经过了初始化。
- 委托:委托的特点 委托类似与c++函数指针,但它是类型安全的;允许将方法作为参数进行传递;可用于定义回调方法;可以链接在一起;方法不需要与委托签名精确匹配。
static void Main(string[] args)
{
List<string> List = new List<string>() { "", "", "", "", "","", "", "", "", "" };
List<string> sort = new List<string>();
List.Sort();
for (int i = ; i < List.Count; i++)
{
if (List.Count == )
{
sort.Add(List[]);
}
else
{
if (i == List.Count - )
{
sort.Add(List[List.Count - ]);
}
else
{
if (List[i] != List[i + ])
{
sort.Add(List[i]);
}
}
} }
foreach (var j in sort)
{
Console.WriteLine(j);
}
Console.Read();c#去除数组中的重复项
c# 程序设计教程笔记的更多相关文章
- 《C#程序设计教程 -李春保》阅读笔记
<C#程序设计教程 -李春保>阅读笔记 ( 需注意程度:红>粗体>下划线,蓝色:我的疑问 ) 老师的引言 [师]对待一种新语言的关注点 数据类型定义(python不用定 ...
- 《C语言程序设计教程》学习笔记
<C语言程序设计教程>--朱鸣华.刘旭麟等 第一章 C语言概述 1.C语言的特点: 1)兼具高级.低级语言的双重能力(C语言允许直接访问物理地址,能够进行位操作,能实现汇编语言的大部分功能 ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- jQuery官方基础教程笔记(转载)
本文转载于阮一峰的博文,内容基础,结构清晰,是jquery入门不可多得的资料,非常好,赞一个. 阮一峰:jQuery官方基础教程笔记 jQuery是目前使用最广泛的javascript函数库. 据统计 ...
- javascript高级程序设计阅读笔记(一)
javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...
- 推荐一本好的c#高级程序设计教程
哪位大神推荐一本好的c#高级程序设计教程 小弟在此感激不尽,谢谢
- C++程序设计教程学习(0)-引子
回想一下从事C++相关开发工作已经有4年,主要从事基于MFC.Duilib等GUI框架开发进行windows应用程序开发,还涉及了一些开源的项目.但是真的谈起这门语言或多或少都会有些心虚,关于C++的 ...
- 20172319 《Java程序设计教程》第8周学习总结
20172319 2018.04.24-05.03 <Java程序设计教程>第8周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
随机推荐
- MongoDB学习笔记~MongoDB实体中的值对象
回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...
- jsp2.0+中的标签文件,JSP Fragment技术
刚进新公司不久,今天在看到项目中用到了.tag文件.刚开始我还以为这个是第三方类似freemarker的模板技术.问了下项目组的其他人员,原来这是jsp2.0以来就有的JSP Fragment技术.以 ...
- OpenStack调研:OpenStack是什么、版本演变、组件关系(Havana)、同类产品及个人感想
一点调研资料,比较浅,只是觉得部分内容比较有用,记在这里: 首先,关于云计算,要理解什么是SAAS.PAAS.IAAS,这里不述:关于虚拟化,需要知道什么是Hypervisor,这里也不述: Open ...
- 【转载】4412开发板嵌入式QtE应用开发环境搭建
本文转自迅为iTOP-4412开发板实战教程书籍:http://topeetboard.com QtE应用需要使用开发工具qtcreator,本文介绍qtcreator-3.2.2的安装和使用.1. ...
- opencv_haar分类器的训练
本文为作者原创,未经允许不得转载:原文由作者发表在博客园: http://www.cnblogs.com/panxiaochun/p/5345412.html 因为工作的原因,本人需要用到分类器来检测 ...
- 【Python数据分析】工作日发文章比周末发文章访问量高?
前言 看前面有位朋友分析了一下每天某个时间发文章的访问量区别,以讨论非系统性因素对文章访问量的影响.之所以进一步讨论工作日和周末发文对文章访问量的影响,一是觉得很有意思,二是毕业设计与此有很大关系,三 ...
- NOIP2013pj车站分级[拓扑排序]
题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了 ...
- Eclipse SVN图标等设置
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全
几十万人使用的系统.覆盖全国.每天营业额上好几个亿的.若信息安全方面太薄弱了.那将会是致命的打击.甚至威胁到企业的正常运转.从国家层面到企业级别大家都在重视信息的安全.可控. 运行速度慢一点点可以忍受 ...
- SSH加固
1.修改ssh默认端口 vi /etc/ssh/sshd_config 中Port:service ssh restart 2.安装denyhosts,应对暴力破解ssh. A.直接 apt-get ...