c#入门基础笔记
1.1:.NET与C#
1.1.1:.NET概述与C#应用
.NET是位于WINDOWs平台的一种技术。包含能在.NET FRAMwork平台运行的所有编程。
1.1.2:IDE环境
微软退出强大的平台和技术,并提供了强大的开发环境来和支持!!
1.2:第一个C#程序
1.2.1:新建程序:
步骤:
1启动vs工具
2新建项目
3生成可执行文件
4开始运行
1.2.2:认识控制台应用程序文件结构
Program.cs:该文件是启动文件! 扩展名是.cs
Hello world .exe:这个文件位于目录下,是项目编译后生成的文件,可以直接运行!
1.2.3:认识C#程序
n Namespace:命名空间
n Using:导入包的关键字
n Class:类名关键字
n Main() 方法关键字
1.3:C#中的变量和常量
数据类型:
常用的数据类型 |
Java |
C# |
例子 |
整型 |
Int |
Int |
年龄 |
浮点型 |
Float |
Float |
成绩 |
双精度 |
Double |
Double |
圆周率 |
字符串 |
String |
String |
姓名 |
布尔 |
boolean |
bool |
是否少数名族 |
1.3.2:变量声明规则和常量声明规则
1,、数据类型+变量名称
2、const 数据类型+常量名
1.4:Console类
1.4.1:输出:console.write();
1.4.2: 输入:console.readwrite();
1.5:类和对象
1.5.1:自定义方法:
语法:[访问修饰符] 返回值类型 方法名(参数列表)
{
方法主体
}
1.5.2:理解类和对象:
类是对象的模板,对象是类的实例(编程世界:万物皆对象)
1.5.3:注释:
单行://
多行:/*
*/
文档注释:///回车 生成格式
折叠:#region开始
结束:#endregion
1.5.4:调试
快捷键:
F5:开始调试
SHIFT F5:停止调试
F9:设置断点或取消断点
F10:单步执行(跳过)
F11:单步调入
第二章:C#语法快速热身
2.1:选择结构
2.1.1:if选择结构
1.单个if:语法:if(条件)
{
代码块
}
2.if(条件)
{
代码1
}
else
{
代码2
}
3. 3.if(条件)
{
代码
}
Else if(条件)
{
代码
}
4.嵌套:if(条件)
{
If(条件)
{
代码
}
Else
{
代码
}
}
Else
{
代码
}
l (嵌套只有当外层满足了才会继续执行内层的结构)
2.1.2:switch选择结构
l 此结构的switch的表达式没有要求,可以是int/double/char/string类型
l 但是case后面必须有break(除非两个case中间没有内容前一个就不用break)
语法:switch(条件)
{
Case 常量表达式1:
//语句
Break;必须
Case 常量表达式2:
//语句
Break;必须
Default:
//语句
Break;必须
}
2.2:数组与循环
2.2.1:一维数组
方括号必须在数据类型后面
语法:类型[] 数组名
- 类型[] 数组名=new 类型[ 此处可加可不加(下标)] {元素1,元素2、等等等、、、、、、、、、}
获取长度:数组.Length
2.2.2:对象数组
- 对象数组就相当于创建的数组元素是由多个对象组成的
u 语法:类型[] 数组名=new 类型[];
2.2.3:循环结构
1.while循环
语法:while(表达式)
{
代码块
}
n 先判断再执行
2.do-while循环
语法:do
{
//代码
}while(条件)
l 先执行一次,再判断
2. for循环
语法:for(表达式1(初始值),表达式2(判断条件),表达式3(迭代部分))
{
//代码块
}
l 一般用于循环次数确定的情况
3. foreach循环
语法:foreach(元素类型 元素变量名 in 数组)
{
//代码块 一般输出时候都是输出(元素变量名)
}
2.2.4:跳转语句
break:跳出循环体,执行循环体后面的操作(执行外层循环)
continue:结束本次循环,继续此循环结构的下一次循环
2.2.5:二重循环
定义:二重循环就相当与循环嵌套:外层循环执行一次,内层循环执行全部!!
2.3:冒泡排序
2.3.1:冒泡排序算法
定义一个中间变量 num
for(i=0;i<长度-1;i++)
{
For(j=0;j<长度-i-1;j++)
{ (从小到大) (从大到小)
If(元素[j]>元素[j+1] 或者 元素[j]<元素[j+1] )
{
Num=元素[j]
元素[j]=元素[j+1]
元素[j+1]= num
}
}
}
最后:遍历数组:就达到了排序的效果(for)
口诀:N个数字来排队,两两相比小靠前(升序),外层循环N-1, 内层循环N-i-1
第三章:使用属性升级MyBank
3.1:private访问修饰符
Public:公用类的,访问权限最大,级别最高!
Private:私有的,受保护的,只能在类的内部使用!!
如果没写:默认internal
3.2:this关键词
This:一般都指本对象的,本类的
可以防止属性(字段)重名的影响!
3.3:C#中属性
用方法可以保证数据安全,可以把字段定义一个方法!
用属性封装字段
语法:private string _name;
Public string Name
{
Get{ return _name }
Set{_name=value}
}
1:C#中的属性:C#中的字段一般是私有的,如果要访问这个字段,要通过建立get和set访问器,这种结合字段的方法的实现称为属性
Get(只读属性(只可以获得)):用来返回相应私有字段的值!(与方法相似)必须用return来实现返回字段的值!执行get访问器相当于读取私有字段的值!
Set(只写属性(只可以给它设定值)):访问器用来设置相应私有字段的值,类似于void方法。使用了一个隐含的参数,(输入的数字)当属性赋值时,就会调用set访问器,并将新赋的值给予这个字段!!
2:属性的数据类型:定义一个类的数据类型,属性的数据类型必须和访问的字段类型一致!(例:字段是int型,属性也是int型)
可以直接创建对象后面加大括号给属性赋值(Student student=new Student(){Age=20};)
:3.4:值传递和引用传递
值传递:相当于只是把内容赋值了一份然后传递(但是虽然副本这边可以修改,但是改了;对另一边不会造成任何影响,这边没有改成功!!)
引用传递:(每一个变量前面都要加ref(形参和实参)):相当于引用了此内容然后进行修改赋值,这样修改的话,就真正意义上的修改成功!
第四章:深入C#的string类
4.1:C#中的string类
字符串的处理方法:
Equal |
比较字符串具体值是否相等 |
Compare |
比较两个字符串的大小关系 |
Int a=indexOf(需要找的字符) |
找到此字符的坐标 |
Int a=LastindexOf(需要找的最后字符) |
找到此字符的坐标 |
String Join(需要连接的两个字符串) |
连接字符串 |
String[] split(需要拆分的对象) |
返回一个数组 |
Substring(坐标,坐标) |
截取此坐标区间的字符串 |
String ToLower() String Toupper() |
转化为小写 转化wie大写 |
Trim |
去掉空格及多余的字符 |
l ForMat格式化
语法:String myString=String.Format(“格式字符串”,参数列表)
例:(string.Format(“{0,20}”,name)) name属性值:表示宽度为20,右对齐
4.2:类型转换
隐私类型转化:(java中的自动类型转化)例:只要a其取值范围完全包括b取值范围
就可以进行隐私类型转化
显示类型转化:(java中的强制转化):当要把范围大的转化为小的,就需要显示转化
数值与字符串之间的转化:
字符串转为其他型
parse(); 例:int.parse(console.Readline())
其他类型转为字符串:
Tostring(); 例:string a=age.Tostring();
使用Convert类进行转化
Convert.ToInt32() |
转化为int类型 |
Convert.ToSingle(); |
转化为Float 单精浮点型 |
Convert.ToDouble(); |
转化为双精浮点型 |
Convert.ToString(); |
转化为字符串型 |
构造函数(就是在创建这个对象的时候会先调用类那边的一个构造方法(方法名与类名一样,且无返回类型),然后才能创建)就是:
比如StringBuilder stb=new StringBuilder();(无参) StringBuilder stb=new StringBuilder(name);有参
比如:DBO dbo=new DBO();(无参) DBO dbo=new DBO(name);(有参)
这也算用StringBuilder这个基本类,创建一个对象,
在创建的过程中,就会默认调用StringBuilder那边的一个无参的构造方法,(只是这种基本类型的那边方法不可见的),一个构造方法
也可以是有参的,表示那边的放法需要这个参数,才能处理下面的代码,
public class StringBuilder 或 DBO //StringBuilder类
{
1.public StringBuilder(string name)或 DBO(string name) //有参的构造方法
{
string newName=name;//用参数做处理
}
2. public StringBuilder() 或DBO() //无参的构造方法
{
//做初始化的地方
}
}
(此次也用到了方法的重载(方法一样,参数不一样))
public class People //另外一个类
{
1.StringBuilder stb=new StringBuilder(name); //相当于默认在创建对象的之前调用了上面的 public StringBuilder(string name)有参构造 方法。
1. DBO dbo=new DBO(name);(有参)
2.StringBUilder stb=new StringBuilder(); //相当于默认在创建对象的之前调用了上面的 public StringBuilder()无参构造 方法。
2.DBO dbo=new DBO();(无参)
}
c#入门基础笔记的更多相关文章
- 智普教育Python视频教程之入门基础篇,python笔记
智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...
- UWP入门(二) -- 基础笔记
原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syntax(语法) ,create i ...
- tensorflow学习笔记二:入门基础 好教程 可用
http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础 TensorFlow用张量这种数据结构来表示所有的数据.用一 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Markdown入门基础
// Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
随机推荐
- spring mvc:属性无法自动注入
在使用spring mvc 3开发一个项目模块时,遇到这样一个奇怪的问题: 前端页面发送的请求中,所有参数都无法自动注入到指定的@ModelAttribute对象中,经过检查,参数名称与接受对象的属性 ...
- 使用Composer安装ThinkPHP5
1.Windows 系统,下载并运行 Composer-Setup.exe. 2.安装compose.PHP采用的是wampserver集成开发环境(这也之后的问题埋下伏笔). 3.然后在命令行下面, ...
- display:inline-block间隙问题
display:inline-block 是让块级元素变成行内元素 在一行显示, 然而不幸的是,它并没有得到所有浏览器的支持,比如ie6.7和古老一点的firefox完全无视它,由于firefox的老 ...
- mapreduce运行机制
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt243 谈mapreduce运行机制,可以从很多不同的角度来描述,比如说从ma ...
- JAVA设计模式:状态模式
声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7518226.html 一.引出状态模式 假设我们现在有一个糖果机项目,那么我们知道正常一般糖果机提供给用户 ...
- WeTest+微信:小程序云端测试系统上线
日前,微信新增小程序测试系统,可便于开发者检测小程序缺陷,评估小程序产品质量.在小程序发布之前,开发者可将小程序代码提交到测试系统,在不同型号的手机真机上运行,执行完毕后自动生成测试报告.小程序云端测 ...
- JS学习四(BOM DOM)
BOM Screen对象 console.log(window.width);//屏幕宽度 console.log(window.height);//屏幕高度 conso ...
- LaTeX排版指南
V0.0.1 工具链 CTeX:http://www.ctex.org/HomePage ,CTeX是一个中文套装,但也同时发布一个独立的ctex宏包 TeXLive:https://tug.org/ ...
- 201521123089 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4 ...
- 201521123071《java程序设计》第三周学习总结
1. 本周学习总结 这周主要学习了构造函数,类与对象,就是这周事情很多,还没来得及好好复习,所以有很多知识都没有认识透彻.但我会尽力补上的. http://images2015.cnblogs.com ...