AI智能
改变未来

C#深入简出学习笔记一

第一课 类 对象 类成员的简介

1.
类Class是实现现实世界事物的模型

类是现实事物抽象所得的结果;

事物包括物质(实体)和运动(逻辑)

建模是一个去伪存真,由表及里的过程

2.
类与对象的关系

什么时候是对象(现实),什么时候是实例(程序)

1.对象也叫实例,是类经过实例化后得到内存中的实体

2.对象和实例是一回事;必须是实例飞,概念不能飞;有的类不能实例化(依照类,我们可以创建对象),比如数学,我们不能说一个数学

3.使用new操作符创建类的实例 #

引用变量与实例的关系

ü 孩子(Form myForm)与气球(new Form());

ü 气球不一定有孩子牵着;(Form myForm)

ü 多个孩子可以使用各自的绳子牵着同一个气球,也可以都通过一根绳子牵着

Form myForm1=
new Form();

Form myForm2=
myForm1;

  1. 类的三大成员

l 属性(Property):存储数据,组合起来表示类或对象当前的状态

l 方法(Menthod):表示类或对象能做什么,构成逻辑的成员

l 事件(Event):类或对象通知其他类或对象的机制,为C#特有

某些特殊的类或对象在成员方面的侧重点不同:

Ø 模型类或对象重在属性,例如:Entity Framework//连接数据库

NuGet获取Entity Framework引用dll

Solution添加 new item-Date-ASO.NET.Entity
Date Model-从数据库新建-新建连接-Microsoft
SQL Server-.-opc149-测试连接

OPC149Entities proxy = new OPC149Entities();

foreach (Box_Main box_Main in proxy.Box_Main){

Console.WriteLine(box_Main.BoxName);

Console.ReadLine();}

static void Main(string[] args)

{

AdventureWorksLT2012Entities proxy

= new
AdventureWorksLT2012Entities();

foreach (Product p in proxy.Products){Console.WriteLine(p.Name);}Console.WriteLine(\"___________\");Console.WriteLine(proxy.Product.Count());

}

Ø 工具类或对象重在方法,如:Math,Console

double x = Math.Sqrt(4);

Console.WriteLine(x);

Ø 通知类或对象重在事件,如各种Timer

Using system.Windows.Threading;

Public MainWindow()

{

InitializeComponent();

DispatcherTimer timer=new DispatcherTimer();

Timer.Interval=TimeSpan.FromSeconds(1);

timer.Tick+=timer_Tick;

timer.Start();

}

Void timer_Tick(object sender, EventArgs e)

{

This.timeTextBox.text=DateTime.Now.ToString();

}

  1. 类的静态成员与实例成员

静态(static)成员在语义上表示它是“类的成员”表示一类事物的特点

实例(非静态)成员在语义上表示它是”对象的成员”
表示个体对象的特点

关于绑定(Binding)

绑定是指编译器如何把一个成员与类或对象关联起来

不可小觑的”.”操作符——成员访问操作符

第三课 C#语言的基本元素概览,初识类型,变量,方法算法

构成C#语言的基本元素

l 关键字(keyWord)

l 操作符(Operator)

l 标识符(Identifier)—-名字 大小写规范:1.大小写规范:变量名:驼峰法 其他名用Pascal法

l 标点符号

l 文本(字面值)

整数(int,long),实数(小数),字符,字符串,布尔,空值

注释与空白 // , /* */

简要介绍类型,变量,方法

ž 初识类型(Type)亦称为数据类型(Date Type)

Var x=3;

Console.WriteLine(x.GetType().Name);

ž 变量是存放数据的地方,简称“数据”

变量的声明

变量的使用

ž 方法(函数)是处理数据的逻辑,又称算法

方法的声明

方法的调用

class Calculate

{

public int Add(int a,int b )//有参数有返回值

{

int result = a + b;return result;

}

public string Today() //无参数,有返回值

{

int day =

DateTime.Now.Day;

return day;

}

public void PrintSum(int a,int b)//有参数,无返回值

{

int result = a + b;Console.WriteLine(result );}

ž 程序=数据+算法

算法的简介

循环和递归()

循环:

public void XTo1Print(int x)

{

for (int  i =x; i > 0; i--){Console.WriteLine(i);}

递归

public void XTo1Print(int x)

{

if (x==1){Console.WriteLine(x);}else{Console.WriteLine(x);Console.WriteLine(x-1);}

计算1到x的和

循环:public int SumFrom1ToX (int x)

{

int result = 0;for (int i = 0; i < x;

i++)

{result = result + i;}return result;

}

递归也称迭代:public int SumFrom1ToX (int x)

{

if (x==1){return   1;}else{int result = x +

SumFrom1ToX(x – 1);

return result;}

汉诺塔问题的作业:将A柱上的n个圆盘通过B柱移至C柱
hannuota(n,A,B,C)

一共分三步:

首先将A柱上的n-1个圆盘通过C柱移至B柱;hannuota(n-1,A,C,B)

将A柱上的第n个圆盘移至C柱;

将B柱上的n-1个圆盘通过A柱移至C柱; hannuota(n-1,B,A,C)

*注意:当n=1时,即已经完成以上第一步的特殊情况,只需完成后两步,而由于此时第三步的n=0,故须终止第三步

对于此类情况可以加入一个if语句来判断:当n减小到1时 只需完成以上三步中的第二步;否则执行以上三步。

class Program

{

static void Main(string[] args)

{

Calculate c = new Calculate();

int  n;string A = \"第一根柱子\";string B = \"第二根柱子\";string C = \"第三根柱子\";Console.Write(\"请输入柱子上有多少个圆盘:\");string x =

Console.ReadLine();

n = Convert.ToInt32(x);c.HanNuoTa(n, A, B, C);Console.ReadLine();        }

}

class Calculate

{

public void HanNuoTa(int x, string A, string B, string C)

{

if (1 == x){Console.WriteLine(\"将{0}中的第{1}块移至{2}\", A, x, C);}else{HanNuoTa(x - 1, A, C, B);//第一步Console.WriteLine(\"将{0}中的第{1}块移至{2}中\",A ,x,C);//第二步HanNuoTa(x - 1, B, A, C);//第三步}

}

}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#深入简出学习笔记一