C#个人笔记

Visual Studio C#第一章,第一个c#程序

要应用其他的类需要

类名.方法()

创建和运行c#步骤

新建项目(project)

生成可执行文件(build)

运行(run)

 

 

Const声明常量,只能够赋值一次

快捷键

F5启动程序

Ctrl+F5可以防止程序关闭的启动

Debug

生成文件可以debug

    classProgram

    Program可以改

设置断点p24

Ctrl+f5启动(不调试)

F5开始调试

Shift+f5停止调试

F9设置删除断点

F10逐过程执行          java,f6,单步执行

F11逐语句                     java,f5单步跳入

 

命名空间

namespace exam1HelloWorld

 

小知识

java的包是物理存在的

cSharp是包虚拟存在的

引用其他命名空间要用using

namespace com.java.util就是cSharp导包

bool布尔

字符串string

返回值为String

Int.parse(console.Readline());//转换int类型

单行//

多行/*

*/

文档注释///

#region命名折叠

Double.parse…….

{0}占位符 

string小写javaString大写

变量-可以修改的量

常量-不可修改的量(const)

 

 

 

C#命名规则

英文,数字

开头英文

不能使用关键字

见名知意

命名规范1:单词首字母大写--(pascal命名法)

命名规范2:单词首字母小写—驼峰命名法Camel命名法(骆驼)

 

Console 控制台类 静态类

Console.Write()输出后不换行

Console.WriteLine()输出后换行

Console.ReadLine;输入方式

占位符输出

            Console.WriteLine("我的课程名称是" + course);//+输出

            Console.WriteLine("我的课程名称是:{0}", course);//用占位符输出

 

多行注释

        ///

        ///输出学生姓名和年龄

        ///

 

#region运用


记得打#endregion要不报错

Int要转型

 String转intàStudent.age = int.Parse(Console.ReadLine());

加法程序

  int num1,num2;

            Console.WriteLine("请输入一个数");

            num1 = int.Parse(Console.ReadLine());

            Console.WriteLine("请输入第二个数"); 

            num2 = int.Parse(Console.ReadLine());

 

            Console.WriteLine(num1+num2);

            Console.ReadLine();

做程序时的思想

1-      需求分

2-      分类

 
第二章,数组和循环

Java和c数组写法一样int
IfJava和c一样

Switch不一样

Java

Switch(int,String,byte,long,char){

Case常量表达式:

Breack//可以不要

}

C#

Break必须要

 

:冒号

;分号

小知识

三大银行

工商 ICBC

建设 CBC

农业 ABC

生成à生成解决方案,就可以保存和找错误

C#中属性和方法都用大写

 

 

 

 

C#一维数组

数据类型[]变量名称=new数据类型[5];  //后面加上字面量的写法

New数据类型[3]=

string[] arr1;        对

string arr1[] 错

如何初始化?

Int[]arr=new int[5]{0,1,2,3,4};//java不可以,c#可以 [5]数量必须和后面的数字一致

Int[]arr=new int []{0,1,2,3,4}; //java 可以 c#可以

Int[]arr={0,1,2,3,4};

数组名:Length

 

Int类型数组

8

8

7

狗类Dogdogs =new Dog[5];

Foreach

Foreach循环用于数组和集合

Foreach (元素类型,变量名,集合或者数组名)

Foreach(Student stu in students){
stu.ShowInfo();//显示学生对象信息

}

Foreach结构不能改变数组各元素的值

While先判断条件和表达式是否可以,如果可以成立就执行不可以就不执行

Do-while先执行一次再判断

For 循环必须使用整型变量做循环计算机(int=0;i>?;i++),

Foreach循环用于数组的所有值,比for简单

 

流程控制

单分支  if

多分枝结构试验ifelse

多重支分多重结构  {

if-else-if

Switch 必须使用break,break可以替换成continue,case当中没有内容则可以不适应break}

嵌套选择-任意嵌套

循环{

For                          While                                Dowhile

Foreach:foreach(数据类型变量名称 in 数组)

}

跳转语句:Breakcontinu

跳出方法             Return                使方法结束,任何代码都不再执行(包括for)

 

类和对象

定义类:属性,方法

值传递                  基本书记类型,进行方法传参,使用的是值传递(copy)

引用传递 引用数据类型默认使用引用传递的方式

使用ref可以让基本数据类型使用引用方式传递

1.方法定义:publicvoid swap(ref int num1,ref int num2)

                                使用基本数据类型进行引用传递需要在方法定义+ref关键词

2.调用swap(refnum1);

如果定义了ref传参必须也加ref

冒泡排序

For (i=0;i

{

For(j=0;j

}}比较j和j+1位置的元素

如果前大后小就交换

 

第三章,使用属性升级MyBank

封装字段p79

Ctrl+R,ctrl+E 将类中的字段,属性绑在一起

面向对象三大特性之一

避免非法数据的访问

保证数据完整性

为了保证数据的安全性,所以使用封装

就比如你在网上买东西,东西都要包装好,不能透露自己的隐私

publicstring Name

        {

            get { return _name; }

            set { _name = value; }

        }

        privateint _age;

        publicint Age

        {

            get { return _age; }

            set { _age = value; }

        }

Get

Set

 

以上是封装好的属

然后就可以拿来用

Studentstudent = newStudent();

            student.Name = "傻逼";

            student.Age = -20;

 

Student s=new Student( ){age=-20}

利用this调用private

privatestring _name;

        publicint _age = 19;

        publicstring _cardID = "440303200012271312";

        publicvoid SetName(string _name)

        {

            this._name = _name;//如果不加this就赋值不到

        }

This:当前实

 

类的成员        手机例子

字段  类中的数据  sim

属性   累的状态  颜色型号

方法  类的行为   显示短信播放音乐等

小知识

Public 访问级别最高,

Private 访问级别最低,只有类内部可以使用

图案

转头:字段

扳手:属性

快捷键

prop  :publicint Myproperty{get; set;}

Get

Set

Process is terminated due toStackOverflowException.有可能是set和get出现问题(变量命不同之类的)

Return 可以结束方法

 


通过对象初始化器可以方便为属性赋值

Student stu newtudent(){name=……….}

 

Ref 修饰参数,(引用)

基本数据类型默认使用值传递

引用数据类型默认使用引用传递,传递的是对象

Swap(ref num1,ref num2)

  publicvoid count(refintnum1, refintnum2)

       这样就可也以用引用的方式传递了

如果不使用ref改的数据只是副本

 

第四章,深入c# string类

小知识

C#和java的substring不一样

ToLowerToUpper

大小写

==判断地址

Equals判断值

可以使用MSDN自学 cn(可能会碰到问题)

http代表互联网(https代表加密)

ftp文件传输协议

fills本地文件

Equals()比较是否相等

输入字母变成小写 p101示例一

               choice= choice.Trim().ToLower();  //将英文字母强制转为小写,trim()方法去掉空格

获得一个字符的位置substring,indexof

  Int indexof(char/string  value)//语法

String substring(int startIndex ,int length)

// 语法startindex()开始的坐标),length(截取的长度)

int position = email.IndexOf("@");  //获得@的位

  if (position>0)   //其中的positon可以找到 @的位

            {

   name = email.Substring(0,position);//得到邮箱中的有户名,利用了substring

Substring(2,position)的意思是从第2个字符后面开始录取知道碰到@的位置,括号内的数字不得小于0

String.Empty的作用

比较空,(检查字符串是不是空的)

Stringuse=String.Empty//空字符串

跟””不一样,这个分配了存储空间

String.Empty不分配存储空间

性能高到低à

Name.Length==0;

Name==Sting.Empty  //一般使用这个

Name==”” 

每一种方法结果都一样

Compare比较

Compare(string strA,string strB)

比较字符串ab返回布尔类型

 

LastIndexOf()

split()方法和join()连接或切割字符串

 

 

 

 

format的使用 p106

1索引[,2对齐][:3格式字符串]

10开始,与变量列表对应

2设置显示的宽度和对齐的方式(可选项) 一个带符号的整数,整数的大小表示宽度,正数像右边对齐,负数为左对齐

3包含格式的说明浮(可选项)

String myString = String .Format(“格式字符串”,参数列表);

例如:String myString=String .Format(“{0}乘以{1}等于{2}”,2,3,2*3);

示例:String.Format(“{0:C3}”,2000)

字符说明  (还有更多)                                                  结果  

C                   货币                                                    $200.000

D                  十进制                                                  200

F                   小数点后的位数固定           2000.000

N                  用逗号(,)隔开的数字            250,000

P                   百分比计数法                                    29.768

X                   十六进制格式                                    C

 

靠左对齐,靠右对齐

 

数值类型与字符串之间的转换P109

强制转换:sum=(int)score+bonus;

字符串转为数值型

Int.Parse(Console.ReadLine());

字符串转为整型代码

Int.Parse(string);

将字符串转为浮点型代码

Float.Parse(string);

将字符串转为双精度浮点型的代码

Double.Parse(string);

 

数值转换为字符串

Int age=18;

Stringmyage=age.ToString();

使用Convert类进行转换

Xxx表示某种类型  convertjava没有

任意类型à其他类型

Conver.Toxxx(objectvalue)

Xxx可以是int double float string

方法                                                                                    说明

Convert.ToInt32()                                                            转为整型(int)

Convert.ToSingle()                                                             转换为单精度浮点型(float)

Convert.ToDouble()                                                           转换为双精度浮点型(double)

Convert.ToString()                                                             转换为字符串类型(string)

 

 

显示转换就是强制性转

Double int需要强制转换

Doublesum=12.1

Sum=int(?)

使用parse(进行转换)

xxx.Parse(string)

字符串à其他类型

Stringint

“123”

“abc123”X

中文123”X

ToString可以转

小串有用的代码

while(choice.Equals("yes"));             //判断用户输入的字符串是否yes

?.? = int.Parse(Console.ReadLine());//输入int

第十三章,使用ADO.NET访问数据库

using System.Data.SqlClient;  //sql server .Net Framework 数据提供程序命名空间 !!!

ado.net概述

ActiveX Data Objects是来访问数据库的方法和技术之一

 

ADO.NeT是NET framework中不可缺少的一部分,它是一组类通过这些类就可以来访问数据库. ADO.NET的功能非常强大,它提供了对关系数据库,XML及其他数据储存的访问. 应用程序可以通过ADO.NET技术与这些数据进行连接,对数据进行增删改查等操作

ADO的主要组件

ADO.NET提供了两个组件,用来访问和处理数据库:NET Framework数据提供和dataset(数据集)

图13.2:p277

1.      NET Framework可以连接数据库,执行命令和检索结果,直接对数据库进行操作

2.      DataSet 是专门为独立于任何数据源的数据访问而设计的.使用它,可以不必之间和数据库打交道,大批量的操作数据库,也可以将数据绑定在控件上

P277两个表格

 

使用connection对象

1.      定义连接字符串

语法:

stringconnString = "Data Source =服务器名; Initial Catalog =数据库名;User ID=用户名;Pwd=密码"; 

举例:

stringconnString = "Data Source =.; Initial Catalog =SchoolDB;UserID=sa;Pwd=201227";  //密码要输自己的,Catalog后面打数据库名字,其中的点代表本地连接

其中initialcatalog后要填要访问的数据库

 

2.      创建connection对象

使用定义好的连接字符串创建connection对象

    SqlConnection connection = newSqlConnection(connString);

 

3.      打开数据库连接

connection.Open();          //

connection.Close();          //

使用try-catch获取和处理异常

Try{

//包含可能出现异常的代码

}

Catch(处理的异常类型){

//处理异常的代码

}

Finally{

Conn.Close();

//无论都会执行的代码

}

注意:程序在执行了try块或catch块之后总会将控制权传递给finally块,与try块的退出方式无关

如果try里面出现了错误,就会运行catch的内容,好处就是程序不会报停止运行

使用command对象

语法:SqlCommandcommand = new SqlCommand(String sql,Sqlconnection conn);

创建一个command对象需要两个参数,第一参数是要执行的SQL语句,第二个是一件创建好的connection对象

属性

说明

Connection

Command对象使用的数据库连接

CommandText

执行的SQL语句

使用command对象的步骤:

1.    创建数据库连接

SqlConnection connection = new SqlConnection(connString);

2.      定义执行的SQL语句

对数据库执行的SQL语句赋给一个字符串

3.      创建command对象

使用已有的connection对象和SQL语句字符串创建一个command对象

4.      执行SQL语句

使用command对象对某个方法执行命令

DBOperation类

为应用程序提供进行数据库数据操作的自定义方法,如建立数据库连接,增删改查数据库表中的记录等.

SchoolMannager类

实现myschoolbase系统中的业务处理,如显示系统菜单,统计学生人数,查看学生名单,按学号查询学生姓名,按姓名查询学生信息,修改学生出生日期,删除学生信息,查看课程清单等.为了实现MySchoolBase系统的业务打出来,在SchoolManner类方法中不仅有数据输入/输出操作,还将创建DBOperation类对象,并且调用DBOperation方法

 

构造函数

1.      必须是public的

2.      必须和类名一致

就是一个方法,使用new方式创建对象的时候调用的

常见错误

总结

Net包括四个核心对象:

1.    connecttion

2.      command

3.      dataAdapter

4.      datareader

connection对象用于建立应用程序和数据库之间的连接

command对象的ExecuteScala()方法可以检索数据库并且返回一个值

try-catch-finally语句来处理异常

小知识

Ctrl+k+s外侧代码快捷键

Ctrl+alt+s连接数据库

第十四章,使用ADO.NET查询和操作数据

String和StringBuilder

多线程

语法:

//声明一个空的stringbuilder对象

StringBuilder 对象名称=new StringBuiler();

//声明一个StringBuilder对象,值为”字符串初始值”

StringBuiler 对象名称 =new StringBuilder (“字符串初始值”);

例如:

            System.Text.StringBuilder sb1 = newStringBuilder();

            sb1.Append("Hello");

            sb1.Append("World");

     cw(sb.ToString())//转成string类型

strTextà垃圾àHello

strTextààHelloWorld

StringBuilder类:用来定义可变字符串

属性

说明

Capacity

获取或设置当前对象所分配内存中最大字符个数

Length

获取长度

StringBuilder Append(string value)

在结尾追加

StringBuilder AppendFormat(string format,object arg0,object arg1)

添加特定格式的字符串

StringBuilder INSERT(int index,String value)

在指定位置插入指定字符串

Remove(int startIndex , int length)

移除指定字符串

想了解更多方法可以去msdn

注意运用时要加.toString

Cw(new object(new Program))万能垃圾处理器

自动关闭

 

DataReader对象的用法

DataReader概念

 

DataReader对象的用法

1.      创建command对象

返回一个datareader对象

2.      创建一个datareader对象

SqlDataReader dataReader = command.ExecuteReader();

3.      调用datareader的read方法逐行读取查询结果集的记录(读取内容)返回值是bool,是否读完了

DataReader.Read();

结合while循环使用

4.      读取当前行的某列数据

类型转换(string)dataReader[“StudentName”];

5.      关闭datareader对象,调用close方法

dataReader.close();

 

 


你可能感兴趣的:(笔记)