C#语言基础MuYuQianShan

C#是一种相当新的编程语言。C#的重要性体现在以下两个方法:

1)、它是专门为Microsoft的.netFrameWork一起使用而设计的(.netFrameWork是一个功能非常丰富的平台,可开发,部署和执行分布式应用程序)

2)、它是一种基于现代面向对象设计方法的语言,它在设计它的时候,Microsoft还吸取了其他所有类似语言的经验,这些语言是近20年面向对象规则得到广泛应用后才开发出来的。

有一个很重要的问题要弄明白:C#就其本身而言只是一种语言,它本身不是.net本身的一部分。.net支持的一些特性,C#并不支持,而C#语言的另一些特性,.net却不支(如运算符重载).因为C#和.Net一起使用,所以如果要使用C#高效的开发应用程序,理解Framework是非常重要.这里我就不再详谈了。

1、c#在向控制台输出语句

语言

输入语句

输出不换行

输出换行

C#

Console.Write()

Console.WriteLine()

2、转义换行

转义符

换行

空8个空格

\n

\t

c#

Console.Write("我\n你");

Console.Write("成绩:\t");

3、c#接收用户在控制台输入的资料

等待用户输入

Console.WriteLine("请输入密码:");

stringpwd=Console.ReadLine();

Console.WriteLine("请输入身高:");

doubleheight=double.Parse(Console.ReadLine());

Console.ReadLine();接收字符串,如果需要数字类型,我们就需要利用

Convert.ToXX(Console.ReadLine());//这里的xx可以为int、double等

对于小数、整数必须转换:

int.Parse(字符串)--把字符串转换为整数double.Parse(字符串)--把字符串转换为小数

注:这里我们不能使用(int)xx这种隐式转换。string不能直接转为数字类型

4、关于XX.Parse()用法需要注意

XX.Parse();这里的XX可以是int、double、bool等

它的用途是:把字符串转换为其它类型

下面的语法都是错误的:

int.Parse(“我和你”);不行,因为“我和你”不是有效的数字

int.Parse(123);不行,必须是字符串

int.Parse(“123.45”);不行,因为”123.456”是小数,所以不能转换为整数

5、认识C#的三种注释

快捷键(vs2012)

Ctrl+K+C选择多行代码注释Ctrl+K+U取消多行代码注释Ctrl+E+C选择多行代码注释Ctrl+E+U取消多行代码注释

注释

单行注释

多行注释

文档注释

//…

/*…*/

///

///…

在实际的开发过程中,这三种注释都要用到,因为它便于让其他开发人员了解你做此程序的目的或者某一段代码的用法及定义这个变量是干什么用的。

注:我也会在我的随后的随笔中总结一篇vs2012的快捷键的操作

6、Console.WriteLine()的语法格式(3种)

1)、Console.WriteLine();//输出一行

2)、Console.WriteLine(要输出的值);

3)、Console.WriteLine(“格式化字符串”,变量列表);

说明:{0}:占位符

依次使用{0}、{1}、{2}...与变量列表中的变量对应

下面是一个使用"+"拼接和使用格式化字符串输出结果的对比:

格式化字符串

inta=2;intb=3;Console.WriteLine(a+"+"+b+"="+(a+b));结果:2+3=5

inta=2;intb=3;Console.WriteLine("{0}+{1}={2}",a,b,a+b)

结果:2+3=5

可能刚开始,有些初学者还不太习惯使用占位符的形式,但是以后你以后你就会慢慢发现,格式化字符串的强大功能之处。现不在这里多加描述。

把a的值赋值给占位符{0},把b的值赋值给占位符{1},以此类推

案例:使用格式化字符串来拼接一句话:

__心__意,__心__意,__羊__泰

Console.WriteLine(“{0}心{0}意,{1}心{2}意,{1}羊{3}泰”,

”一”,”三”,”二”,”开”)

那么请您思考一下占位符{0}、{1}、{2}、{3}分别代表什么?

最后,请大家打开VS工具,试着用"+"拼接符和使用格式化字符串来进行制作以下小程序

题目:输入姓名和年龄,输出结果

在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用继承或其它面向对象的特征。

本章主要针对以下几个部份来进行讲解:

1、电脑是由什么来存储所使用的数据?

2、基本数据类型有哪些?

4、变量和常量的区别?

5、不同数据类型之间是如何转换的?

下面,我们现一个一个的来了解这些问题。

一、电脑是由什么来存储所使用的数据?

这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。

在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们都类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。

那有哪些数据类型是C#能使用的呢?我们一起来看一看.

二、基础数据类型有哪些

首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.netFramework中。

类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。

下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。

c#有15个预定义类型,其中13个是值类型,两个是引用类型(string和object)

1、整型

2、浮点类型

float数据类型用于较小的浮点数,因为它要求的精度较低。

double数据类型比float数据类型大,提供的精度也大一倍(15位)。

如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。

如果想指定该值为float,可以在其后加上字符F(或f),如:

floatf=12.3F;

3、decimal类型

decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。

要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:

decimald=12.30M;

4、bool(布尔)类型

5、char字符类型

char类型的字变量是用单引号括起来的。如'A'

如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。

6、引用类型(Object类型和字符串类型)

1、变量的定义:是指在程序的运行过程中随时可以发生变化的量

2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。

那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。

大家可以看一看这张图,它就把表示内存当中的一个状态。

简单的来说,变量就是表示内存当中的一块存储区域。

它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。

那么怎么办呢?

在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。

那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字,

这就是变量名。

3、C#中的变量的命名是是有规则的:

1)、由字母、数字或下划线"_"组成

2)、必须由字母或下划线"_"开头,不能以数字开头

3)、不能是c#中的关键字如:int、string、bool、Main、class等

4)、区分大小写如:小写的a和大写的A是两个变量

4、做为一个比较好的学习者,就必须遵守一些变量命名规范:

1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。

如:姓名变量取名为name或者用拼单xingMing,避免用a,b,c来进行命名。

2)、避免使用单个字符作为变量名(除在循环里面定的变量)

骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge

上一章我们了解了C#的一些数据基本类型、如何定义使用变量及类型之间的相互转换。可能大家会发现程序只能按照我们的要求从上向下这样顺序一条一条的执行。

那么程序能按照我们的要求,当某个条件成立的时候才执行呢?答案是肯定的,因为程序中有这样的流程语句。

那么我们本章讲像大家讲解一下C#的运算符及条件控制语句。

1、算述运算符

2、关系运算符

3、逻辑运算符

4、条件语句

5、分支语句

一、算述运算符

程序中所运用的算术运算符跟我们平常日常生活中接触的算术也一样。主要分为:

加、减、乘、除、模(求余数)

+、-、*、/、%

两个数的运算如下:

inta=5,b=6;

intc=a+b;

//程序首先定义两个整型变量a和b,并对它们赋初始值,a为5,b为6

//那么现在计算两个数的和,把它们的和放到另外一个变量c当中,所以c的值为11;

主要是除和模(求余数)的计算,可能很多人刚开始还不太习惯。

inta=15,b=3;

intc=a/b;//这里求15/3,所以c的值就是5

intd=a%5;//这里求15/3的余数是多少,所以d的值就是0,因为15/3商5,余0

下面来制作一个案例:交换两个数的位置,如inta=5,b=3;现在要把它变为a=3,b=5;

这里有几种做法:

第一种常见做法是:在内存中再申请一个变量c,把a的值赋值c,

然后再把b的值赋值给a,最后把c的值赋值给b;(图解)

代码如下:

inta=5,b=3;

intc=a;

a=b;

b=c;

图1

图2

图3

图4

第二种做法:

inta=5,b=3;b=a+b-(a=b);

这种做法是在两个变量中进行的,首先要理解它的算法。

首先看图,这种写法可以很多人没有看到过。我们只知道=号代表赋值运算,能这样在与算术运算中,程序居然不会报错,真的是奇迹。

那么如何能这样写,程序运算的顺序又是怎么样的呢?看图,程序运算的过程为:

(1)、a+b,得到的结果是8

(2)、a=b,把b的值3赋值给变量a,所以现在a=3;

(3)、由图(1)-图(2)为,8-3=5,最后把5赋值给变量b

这样,就在不增加变量的情况下,交换了两个数字。

二、关系运算符

我们先来看一看日常生活中和C#程序中关系运算符的区别。

从上图可以看出,除了等于与不等于写法不一样外,其它的都一样。

在我们日常生活中经常会用到这些符号,现在只不过是用程序的方法把它实现。

如:2>3,4<6,5==5,6!=7,"我"=="我"

在程序中,这样的判断得出的结果只有两种:一种是成立,一种为不成立。

bool类型只有两个值,true代表成立,false代表不成立

如:

boola=3>4;结果是:false(不成立)

boolb=(4==4);结果是:true(成立)

三、逻辑运算符

用一句话连贯的英语单词来形容程序中的逻辑运算符,那就是notandor(如图):

用一句话连贯的中文来形容程序中的逻辑运算符,那就是与或非(如图):

逻辑运算符是用在当要判断多个条件是否满足时的情况下使用。&&和||是有区别的

&&[and]:当所有的条件都满意成立的时候,才成立

||[or]:当有一个条件成立时,就成立。

如图:

逻辑与

逻辑或

注意:在算术运算符、条件[比较]运算符、逻辑运算符和赋值运算符中,程序运行的先后顺序是:

!>算术运算符>条件[比较]运算符>&&>||>=

由此可见:

逻辑运算符中的非!运算符最高

算术运算符第二

条件[比较]运算符第三

逻辑运算符中的与&&第四

逻辑运算符中的或者||第五

最后,赋值运算符(=)运算的级别最低

四、条件语句

在我们日常生活中,经常会问题这样的问题,如:

如果今天是星期天,我们就去看电影。

假如我买的彩票中了五百万,我就去渡假。

如果我有一辆车,我就开车去旅游等等。

像这样假设的条件,如果成立就做某些事情,在我们程序中有一专门的语句去实现它,那就是条件结构语句。

条件程序语句大概分为5大类,分别为:

(1)简单if(2)ifelse(3)嵌套if(4)多重if(5)switch条件分支语句

其语法为:

{

}

如:如果我中了五百万,我就去渡假。

intmoney=5;

if(money>=5)

Console.WriteLine("我中了五百万,我要去渡假。");

else

如:如果我中了五百万,我就去渡假,否则我就继续支持福彩票事业。

Console.WriteLine("继续支持福彩事业。");

if(条件语句)

选择题:以下变量命名正确的是()

A、name、_222*1、9class、public

B、_teacher、void、string、myName

C、$Age、corss、fire、_grade

D、_glass、g23、c_12、my_first_2

1)定义变量的语法:

数据类型变量名;(定义一个年龄的变量,年龄是整数,所以变量定义如下:)

intage;[系统会根据数据类型,在内存中分配不同大小的存储空间]

每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)

stringname,address,origin,national;

2)为变量赋值语法:

变量名=值;

(这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)

如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",

籍贯为“重庆",民族为“汉"

age=18;

name="小张";

address="重庆南坪XXX";

origin="重庆";

national="汉";

四、变量和常量的区别

变量:是指在程序的运行过程中随时可以发生变化的量

常量:是指在程序在运行过程中不会发生变化的变量

常量的特点:

2、不能在在程序运行时,给常量赋值

五、不同数据类型之间是如何转换的

在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换2)显式[又叫强制]类型转换

举个简单例子:

飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,

但是程序可能做到这一点,我们把这种叫做显式[又叫强制]类型转换

但是程序可以做到这一点,我们把这种叫做显式[又叫强制]类型转换

double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多

所以double可以装得下int:

inta=1234;

doubleb=a;系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换

那反过来:

doublea=1234;

intb=a;//系统编译时会报错,如图:

那如何进行强制转换呢?c#提供了非常简便的方法,如:

intb=(int)a;//这样就强制把double类型,转换为int类型

最后,再介绍一下,其它数据类型之间的转换(1、字符串转换为其它类型2、任意类型之间的转换)

1)、字符串转换为其它类型

语法:

XX.Parse(字符串);这里的xx代表的如:double,int,bool等

举个例子来说明一下:

stringstrValue="123.45";//这是一个字符串,时面的值是"123.45"

现要把它转换成小数类型,就可以使用double.Parse();来进行转换

doubledValue=double.Parse(strValue);

2)、任意类型之间的转换

Convert.ToXX(任何类型);

如:把一个布尔类型转换为整型

boola=true;intb=Convert.ToInt16(a);Console.WriteLine("转换后的结果是:"+b);//转换后的结果是:1

ok,经过以上的学习,我相信大家对C#的一些基础知识有一定的了解,那么下一章我将介绍C#的算术运算符、逻辑运算符、关系运算符,以及控制程序流的语句。

本文主要是讨论栈和堆的含义,也就是讨论C#的两种类据类型:值类型和引用类型;

虽然我们在.net中的框架类库中,大多是引用类型,但是我们程序员用得最多的还是值类型。

引用类型如:string,Object,class等总是在从托管堆上分配的,C#中new操作符返回对象的内存地址--也就是指向对象数据的内存地址。

以下是值类型与引用类型的表:

我们来看下面一段代码:

并使用在程序入口调用它们,如图:

现在我们来看一看,它们在内存当中是如何存储的?

从这张图可以看出,class(类)实例化出来的对象,指向了内存堆中分配的空间

struct(结构)实例化出来的对象,是在内存栈中分配

接下来,我们再来在上面的程序做如下修改:

红框,代码定义一个class实例化对象s2,然后把对象s1赋值给s2

蓝框,代码定义一个结构实例化对象r2,然后把对象r1赋值给r2

那它们输出的结果是多少呢?请选择(c)

A、s1的值为:12s2的值为222r1的值为:16r2的值为666

B、s1的值为:12s2的值为222r1的值为:666r2的值为666

C、s1的值为:222s2的值为222r1的值为:16r2的值为666

D、s1的值为:222s2的值为222r1的值为:666r2的值为666

所以,值类型和引用类型的区别就是:

1、它们存储的位置不一样

2、如果是引用类型,当两个对象指向同一个地方,修改某一个的时候,其它对象的值会发生改变

我想在这个园子里面的新人,还是"掌门人",都对"面向对象"这几字非常的耳熟了或者有一定的了解。

但当一个初学都在学习面向对象的时候,会遇到一些瓶颈和麻烦,认为面向对象非常的难以理解。

那么本章节主要是让大家了解面向对象,并系统地掌握面向对象编程的技能点,消除初学者的疑惑.

1、如何去学习面向对象的编程?2、需要掌握的有哪些技能点?

一、如何去学习面向对象的编程?首先要想要学习好面向对象编程,那么你就必须把一切的事物都能想到它的一些特性和行为。

但是对于一个面向对象的编程者来说,它看到的应该是比文字还要多的东西。

如:字体的颜色、字数、文字的大小、文字的样式、文字的粗细,等等。。。。。

二、学习OOP需要掌握的有哪些技能点?我用一个图来描述一下,大家首先必须要掌握的知识点

在图中,分别列出面向对象的三大特性

1、封装的特点:

1)、隐藏代码的实现,便于用户调用

2)、让代码与实现相分离

3)、在类的内部实现自由的修改

2、继承的特点:

减少重复的代码,便于程序的维护

3、多态的特点:

表示不同的对象在执行相同的动作的时候,通过自己内部来执行

想必大家对面向对象的三大特性,都非常了解,我这里只是简单的描述了一下。

请大家先了解一下,那么下一章,我们就开始面向对象的第一步,了解什么类和对象.

THE END
1.www.topcheersoftware.com/newxr43246879.htm福彩3D开奖结果 43.63MB 46%好评485人 XXIX23 色五月.com 182tv高清视频一路线 15.36MB 50%好评729人 91中文字幕在线一区 国产suv精品一区区二区三区 爱田奈々未亡人手机在线 97.26MB 44%好评797人 高潮av 美式保罗1984第三部 葫芦里面不买药 86.43MB 25%好评127人 日本拍拍 老卫寸http://www.topcheersoftware.com/newxr43246879.htm
2.官方苹果安卓登录入口10年期国债收益率跌破2%只是前菜?机构:降准降息窗口打开2.官方客服平台:您可以通过梦三国官方网站或官方社交媒体平台,如微博、微信公众号等方式联系客服。1.在游戏内联系客服:在游戏页面点击右下方的“联系客服”,输入您的问题后即可直接联系客服。 如需联系梦三国手游客服,您可以通过以下方式进行咨询或投诉: http://www.gl8.co/395318.html
3.快乐8怎么才算中奖快乐8技巧快乐8是一种基于福彩开奖结果产生的数字游戏。玩家的任务是从1到80中选择20个数字,如果选择的数字与开奖结果相符,就可以获得相应的奖金。那么,怎么才算中奖呢? 中奖的金额取决于所选数字和所选数字与开奖号码的匹配情况。在快乐8中,有以下三种中奖情况: https://kl8.17500.cn/skills/show/type/hot/id/10335280.html
4.福彩3D组6是什么意思!要怎么才算是中奖!3D问答福彩3D:.组选6奖:当期开出的中奖号码3位数各不相同,且投注号码的三位数与中奖号码相同,顺序不限,即中得https://m.cjcp.com.cn/wenda/1_2705.html
5.双色球开奖号码怎么算中奖1. 对号码奖:双色球开奖号码中的6个红球中,如果与自己购买的号码按顺序完全一致,则中得一等奖;如果红球中有5个一致,则中得三等奖;如果红球中有4个一致,则中得四等奖;如果红球中有3个一致,则中得五等奖;如果红球中有1或2个一致,则中得六等奖。 http://www.360doc.com/content/23/0925/16/75092861_1097851622.shtml
6.登录网址app地址安卓36,bv伟德国际体育官网,二八杠生死门如何算 37,IGKbet线上娱乐,葡京现金app大全 38,8868体育官方入口,成人手机游戏网站 39,新葡京6878.am,足彩分析高手 40,名门会娱乐,上海时时乐网上平台 41,365真网站,新葡京国际娱乐场 42,pg平台官方网站,加拿大二分彩计划 http://www.xthygj.com/683142.html
7.福彩双色球预测开奖结果/手机APP下载(最新版)冷酷射手是一款画面卡通的射击游戏,玩家在游戏中可以控制角色射击角度,计算好弧线,一击福彩双色球预测开奖结果命中,武器装备很多,会慢慢解锁,感兴趣的福彩双色球预测开奖结果小伙伴快来下载吧。 冷酷射手 2024-12-14 20:16:09 咨询我 婚姻家庭律师团队 推荐 已帮助92765人 · 响应时间 平均1分钟内 冷酷射手官方介https://www.lawtime.cn/lawlhDSSwhxo/
8.福彩3D复式计算器福彩3D选号计算器福彩3D 九码复式23中21:好运持续更多推荐 独胆8中6 运气爆棚..独胆8中6。双胆16中14,本期可期。双胆13中11。更多推荐 七码复式7中5。七码复式5中4:挑战延续分格。七码复式6中4,见坑不掉坑?杀一码23中21。更多推荐 杀一码20中18。杀一码19中18。杀二码9中8,缘分送码~杀二码10中8。更多推荐https://tools.ssqzj.com/jsq/fushi_3d.html
9.双色球双色球杀号公式,双色球杀号公式汇总深度神经网络是怎么学习的。 双色球定号杀号方法大全27个杀红公式是当期开奖号码大小顺序第一位与第六位的差一,当期双色球开奖号码大小顺序第一位与第六位的差,具体公式为二、当期双色球开奖号码大小顺序第二位与第三位的差,计算的结果在下一期有可能不出11。 https://blog.csdn.net/mr_yu_an/article/details/126755455