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 指导老师:王 ...
随机推荐
- Attempt to fetch logical page (...) in database 2 failed. It belongs to allocation unit xxxx not to xxx
今天一个同事说在一个生产库执行某个存储过程,遇到了错误: Fatal error 605 occurred at jul 29 2014 我试着执行该存储过程,结果出现下面错误,每次执行该存储过程,得 ...
- 【转】高效Java编程工具集锦
原文地址:http://geek.csdn.net/news/detail/57469 Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高 ...
- Windows 安装Kafka
Windows 7 安装Apache kafka_2.11-0.9.0.1 下载所需文件 Zookeeper: http://www.apache.org/dyn/closer.cgi/zoo ...
- Java 对象初始化
对象A的创建过程: 1. 构造器实际上是静态方法.当首次创建对象A 或者 A类的静态方法/静态域首次被访问时,Java解释器查找类路径,以定位 A.class文件.(当程序创建第一个对类的 ...
- 【小白的CFD之旅】04 任务
和老蓝见面之后的很长一段时间里,小白都没有接到任何老蓝的消息,再加上课比较多,小白也慢慢适应了白天上课,晚上窝在宿舍打游戏,偶尔也去图书馆看看书的生活,这样宁静的生活持续了差不多两个月.就在老蓝的影子 ...
- 06章 映射一对多双向关联关系、以及cascade、inverse属性
当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象.或者通过集合导航到一组对象.例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp ...
- Eclipse SVN图标等设置
- [转]用Whois获得电信运营商的IP地址是如何分配的?
[转]用Whois获得电信运营商的IP地址是如何分配的? Linux下获得一些中国电信运营商的IP地址分配情况: APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信 ...
- Binder理解
native takepicture -> camera -> ICamera: class bpbinder: transact -> BpBinder: transact -&g ...
- Python-12-MySQL & sqlalchemy ORM
MySQL MySQL相关文章这里不在赘述,想了解的点击下面的链接: >> MySQL安装 >> 数据库介绍 && MySQL基本使用 >> MyS ...