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. mysql互换表中两列数据

    在开发过程中,有时由于业务等需要把一个表中的两列数据进行交换. 解决方案 使用update命令,这完全得益于MySQL SQL命令功能的强大支持. 表格中原来数据类似如下: select * from ...

  2. 搭建互联网DNS构架

    author:JevonWei 版权声明:原创作品 构建"." DNS."com" DNS及"danran.com",用户通过"电 ...

  3. 《物联网框架ServerSuperIO教程》- 22.动态数据接口增加缓存,提高数据输出到OPCServer和(实时)数据库的效率

     22.1   概述及要解决的问题 设备驱动有DeviceDynamic接口,可以继承并增加新的实时数据属性,每次通讯完成后更新这些属性数据.原来是通过DeviceDynamic接口实体类反射的方式获 ...

  4. hdu 2503 1713 1108 最小公倍数&最大公约数

    gcd模板: __int64 gcd(__int64 a,__int64 b) { retur b==0?a:gcd(b,a%b); } 1108: #include<iostream> ...

  5. Android学习记录:ViewPager实现欢迎页

    许多APP在第一次启动的时候,都会有welcome page.近日尝试利用ViewPager来实现Welcome Page. d0711 完成记录,跟新下载地址 =================== ...

  6. 转:【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17965867   方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法 ...

  7. C语言程序设计课程设计自查表格

    课程设计自查表格 序号 项目 完成与否(完成打勾) 1 格式是否符合标准(缩进是否规范) 2 是否模块化设计(使用函数分解系统功能) 3 函数名否易懂(不得使用f1(int a1,int a2)这样的 ...

  8. Java 第十一周总结

    1. 本周学习总结 2. 书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同步访 ...

  9. 201521123097《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中fin ...

  10. Android之View绘制流程开胃菜---setContentView(...)详细分析

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 1 为什么要分析setContentView方法 作为安卓开发者相信大部分都有意或者无意看过如下图示:PhoneWindow,DecorView这些 ...