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:一维数组

方括号必须在数据类型后面

语法:类型[]  数组名

  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#入门基础笔记的更多相关文章

  1. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  2. UWP入门(二) -- 基础笔记

    原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syntax(语法) ,create i ...

  3. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  4. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  5. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  6. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  7. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  8. Markdown入门基础

    // Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...

  9. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

随机推荐

  1. FileDetector-基于java开发的照片整理工具

    1. 项目背景 开发这个功能的主要原因如下: 1. 大学期间拍摄了约50G的照片,照片很多 2. 存放不规范,导致同一张照片出现在不同的文件夹内,可读性差,无法形成记忆线. 3. 重复存放过多,很多照 ...

  2. Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案

    Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案 网上太多相关资料,但是抄袭严重,有的讲的也是之言片语的,根本不连贯(可能知道的人确实不想多说) 我总共 ...

  3. Weave 如何与外网通信?- 每天5分钟玩转 Docker 容器技术(66)

    上一节我们学习了 Weave 网络内部如何通信,今天讨论 Weave 如何与外界通信. weave 是一个私有的 VxLAN 网络,默认与外部网络隔离.外部网络如何才能访问到 weave 中的容器呢? ...

  4. Mysql 分区详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt120 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.m ...

  5. Google推出移动网页开发者认证考试 价格99美元

    如果您是移动网页开发人员,希望了解您的编码实力,Google将推出一个认证流程,让您可以参加考试,如果您通过,可以在您的简历,网站和其他在线上显示电子徽章配置文件.           此外,潜在的雇 ...

  6. Java企业微信开发_09_身份验证之移动端网页授权(有完整项目源码)

    注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先 ...

  7. Windbg DUMP

    Windbg DUMP分析(原创汇总) 1. 引入篇 1.1 下载安装 1.2 调试器 1.3 操作界面2. 命令篇 2.1 按照来源划分 2.1.1 基本命令 2.1.2 元命令 2.1.3 扩展命 ...

  8. Beta版本冲刺前准备

    Beta版本冲刺 经过紧张的Alpha阶段,很多组已经从完全不熟悉语言和环境,到现在能够实现初步的功能.下一阶段即将加快编码进度,完成系统功能.强化软件工程的体会. 1.凡事预则立,在Beta开始前, ...

  9. Swing-JFileChooser的使用

    JFileChooser文件选择器是Swing中经常用到的一个控件.它的使用主要包含以下几个参数: 1.当前路径.也就是它第一次打开时所在的路径,许多软件喜欢设置为桌面. 2.文件过滤器.通过设置文件 ...

  10. 201521123048 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...