手记

Step by step:一起来学C# (1)

前言:大二开始接触C#,除了做出来的界面丑点(也可能是我自个儿的审美问题?),功能很强大,上手超快。不用抱着一本类似c#从入门到精通的书看到睡着,掌握基本的编程思想就ok,有一定c语言基础就更棒啦。学习c#,感觉直接开干是最好的选择,它本身封装很多类库,遍历学习不现实,我使用c#好几年,都是哪里不会,查一查补上就好。

说他简单,很重要的一个原因是:C#的winfrom有很多控件,可视化的操作,省时省力。春节在家无聊,修改C#编写的切图程序的时候,被学机械的弟弟嘲讽了:你们写程序就是这样拖控件啊,我也会啊!总之,这是一个很适合前端菜鸟(比如我)的语言。

闲话少叙,这一篇文字,是《Step by step:一起来学C#》的开篇,之后会保持更新。

《Step by step:一起来学C#》将从C#的几篇简单介绍(包括C#能做些什么、C#的通用知识等)开始逐渐展开,后续将以实战为主要内容(包括新建C#工程、控件的使用、完整的功能程序等)。


嘎嘎嘎

一、用C#能编写的程序

1.Windows应用程序

这些应用程序(如Microsoft  Office)具有我们很熟悉的Windows外观和操作方式,使用.NET Framework的Windows Forms模块就可以简便地生成这种应用程序。Windows Forms模块就是一个空间库,其中的控件(例如,按钮、工具栏、菜单等)可以用于建立Windows用户界面(UI)。


winform程序示例

2.WEB应用程序

它们是一些Web页面,可以通过任何Web浏览器查看。.NET Framework包括一个动态生成Web内容的强大系统,允许进行个性化和实现安全性等,这个系统叫做Active

Server Pages .NET(ASP.NET),我们可以通过使用C#编写在浏览器内部运行的应用程序。


Web页面示例

3.WEB服务

这是创建各种分布式应用程序的新方式,使用Web服务可以通过Internet虚拟交换数据。无论使用什么语言创建Web服务,也无论Web服务驻留在什么系统上,都使用一样简单的语法。

二、C#的通用知识

C#是一个面向对象的编程语言,那什么叫面向对象呢,又包含哪些我们需要了解的要素呢?下面我们简要阐述一下C#编程需要知道的一些通用知识。

1 面向对象编程

面向对象编程是相对于面向过程编程而言的一个概念。

1.1面向过程

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:

1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。

作者:fiisio    链接:https://www.zhihu.com/question/28790424/answer/42102986    来源:知乎著作权归作者所有。

c语言便是标准的面向过程的编程语言。

1.2面向对象

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

五子棋,面向对象的设计思路区别于1.1中给出方式,它将整个五子棋相关角色分别建立一个对象:

1、玩家对象:黑白双方,这两方的行为是一模一样的,2、棋盘对象:棋盘系统,负责绘制画面,3、裁判对象:规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(裁判对象,即规则系统)来对棋局进行判定。

作者:fiisio    链接:https://www.zhihu.com/question/28790424/answer/42102986    来源:知乎著作权归作者所有。 

面向对象编程(ObjectOriented Programming,OOP)是创建计算机应用程序的一种相当新的方法,它解决了传统编程技巧带来的许多问题。OOP技术使用许多代码模块,每个代码模块都提供了特定的功能,并且每个模块都是独立的,甚至于其他模块完全独立。这种模块化编程方法提供了非常大的多样性,大大增加了重用代码的机会。总的来说,OOP技术以结构、数据的含义以及数据和数据之间的交互操作为基础。

2 对象的三要素

对象是面向对象应用技术的一个组成部件。这个组成部件封装了部分应用程序,这部分程序可以是一个过程、一些数据、一些更抽象的实体。它包含变量成员和函数类型。它所包含的变量组成了存储在对象中的数据,其中包含的函数可以访问对象的功能。略为复杂的对象可能不包含任何数据,而只包含函数,表示一个过程。比如说,封装程序表示打印机的对象,其中的函数可以控制打印机(允许打印文档、测试页等),其中的变量数据表示打印机的相关信息(出厂日期、型号等)。

C#中的对象是从类型中创建的,对象的类型在OOP技术中有一个特殊的名称:类。可以使用类的定义实例化对象,这表示创建该类的一个实例。“类的实例”和对象含义相同,但是“类”和“对象”是完全不同的概念。例如:狗是一个(可以表示所有的狗狗有共同的一部分属性、行为),你养的那一只可爱的狗狗则是狗的一个实例(拥有个体独特的属性和行为),也可称作狗这个类的一个对象

对象有三要素,属性、事件及方法。简单地说,(1)属性是这样一些变量,它们描述了对象的一些特性;(2)方法是对象包含的这样一些函数,执行他们可以实现对象的特定功能;(3)事件则向对象通知外部的操作,如对一个按钮来说,鼠标单击就是一个事件。

这段真的是超级抽象了,不方,我们举个栗子


举个栗子

//这是一个宝宝类

class baby

{

    //下面这些是属性

    int age;//年龄

    string name;//名字

    //下面这些是方法

    public void cry();//会哭

     public void smile();//会笑

}

//这是实例化的一个宝宝对象

baby mybaby=new baby();

/*

然后你可以给宝宝取名字,宝宝也会有自己的年龄;

事件的话:宝宝知道你给他取名叫狗蛋儿,他长大懂事了一定会哭哒;对他拍手,他高兴可能就会笑啦。

*/

PS:只是个简单的栗子,代码方面有些不严谨的地方,多多包涵;



作者:长肉肉呱
链接:https://www.jianshu.com/p/661afdb6ddc9


0人推荐
随时随地看视频
慕课网APP