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 指导老师:王 ...
随机推荐
- 把你的Project发布到GitHub上
在上一篇文章中说明了如何使用远程仓库,接下来,就使用常用远程仓库GitHub来管理你的project. 1)在GitHub上创建仓库 要使用GitHub,肯定要注册GitHub帐户,然后建立一个仓库. ...
- 【转】hive导入数据出现NULL
在把hdfs上数据迁移到hive中的表时,若出现数据位NULL,是因为没有指定列分隔符. 由于hive默认的分隔符是/u0001(Ctrl+A),为了平滑迁移,需要在创建表格时指定数据的分割符号,语法 ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- 报表移动端app如何实现页面自适应?
1. 描述 PC上制作好的报表,在手机端查看的时候,报表软件默认的自适应效果不尽人如意.例如,报表比较大,到手机上被缩的非常小,字都看不清等等.为此FineReport增加了选项可以手动控制报表在移动 ...
- Python学习记录day4
a:focus { outline: 5px auto -webkit-focus-ring-color } a:hover,a:active { outline: 0 } a { color: #0 ...
- MMORPG大型游戏设计与开发(服务器 AI 基础接口)
一个模块都往往需要统一的接口支持,特别是对于非常大型的模块,基础结构的统一性非常重要,它往往决定了其扩展对象的通用性.昨天说了AI的基本概述以及组成,作为与场景模块中核心一样重要的地位,基础部分的设计 ...
- UVA11525 Permutation[康托展开 树状数组求第k小值]
UVA - 11525 Permutation 题意:输出1~n的所有排列,字典序大小第∑k1Si∗(K−i)!个 学了好多知识 1.康托展开 X=a[n]*(n-1)!+a[n-1]*(n-2)!+ ...
- Ubuntu14.0下安装Zend Framework 2
Ubuntu14.0下安装Zend Framework 2为了安装这个东西,忙活了快一天了,参考中文博客一直没有安装成功,有些博客的时间也是已经很早了,后来google看英文版的才安装成功,这里记录一 ...
- u3d_Shader_effects笔记6 第二章 animating sprite
1.前面的心情 上班看shader我也是醉了.写完这篇看代码去了,不过看着看着恐怕就会困.... 还有就是上天,我该怎么做,下一步,大懒: 2.参考源头 http://blog.csdn.net/ca ...
- webpack中alias别名配置
resolve:{ alias:{ bootcss:__dirname + '/node_modules/.3.3.7@bootstrap/dist/css/bootstrap.min.css' } ...