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 指导老师:王 ...
随机推荐
- SpringMVC 文件上传
@RequestMapping("/testFileUpload") public String testFileUpload(@RequestParam("desc&q ...
- Oracle触发器原理、创建、修改、删除
本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...
- 从零自学Hadoop(08):第一个MapReduce
阅读目录 序 数据准备 wordcount Yarn 新建MapReduce 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是 ...
- 优化临时表使用,SQL语句性能提升100倍
[问题现象] 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右.SQL语句如下:SELECT DISTINCT g.*, cp. ...
- [有意思]The IT workers of Star Wars -- That's not a bug. It's a feature
Yeah, that Artoo is kinda mouthy... ... now select, "restore to factory settings." That'll ...
- linux下使用tar命令
解压语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项: c 创建新的档案文件.如果用户想备份一个目录或 ...
- Linux cut命令
[root@wang /]# cat /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x ...
- Ubuntu nginx 配置404错误页面
1.创建自己的404.html页面: 2.更改nginx.conf在http定义区域加入: /etc/nginx# vim nginx.conf 下添加 fastcgi_intercept_error ...
- Serial Port Programming on Linux(转载)
This is a tutorial on how to program the Serial Ports on your Linux box.Serial Ports are nice little ...
- bzoj[3238][ahoi差异]
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output HINT 2<=N<=5 ...