C#程序设计笔记

C#程序设计【未完待续】

关键字

关键字:有特殊意义的单词

using 引入命名空间
namespace 定义命名的空间
class 定义类
void 空返回值
static 静态

Console.ReadKey(); 暂停当前程序,等待用户按下任意键继续,按下的任意键将显示在控制台当中。

注释符

  • 注销
  • 解释

C#中的3种注释符

  1. //单行注释
  2. /多行注释/
  3. ///块注释
  4. #Region #Endregion 折叠代码

标识符

用来表示事物的单词

规范:

  • 标识符只能用字母,数字或者下划线组成
  • 标识符必须以字母或下划线开头
  • 标识符不能是关键字

符号的含义

{} 语句块 / 占位符

[] 数组或集合

() 函数或方法

波浪线的含义

  • 如过你的代码中出现了红色的波浪线,意味着你的代码出现了语法错误。
  • 如果你的代码中出现了非红的波浪线,说明你的代码语法并没有错误,只不过提醒你可能会出错。

C#的数据类型

C#严格区分大小写

变量

用来在计算机中存储数据。

  • 变量
  1. 在一定的作用域里面,只能定义一次。
  2. 变量名,起名字的时候要符合标识符的规范。
  3. 变量的值可以发生改变。
  4. 变量一定要先声明,再赋值,最后使用。
  • 存储变量的语法:

变量类型 变量名;
变量名 = 值;

“=”号:在这里并不表示等于的意思,而是表示赋值,表示把等号右边的值赋值给等号左边的变量。

声明并且给变量赋值的简写形式:
变量类型 变量名 = 值;

有符号整数类型: sbyte(8) short(16) int(32) long(64)
无符号整数类型:Byte short uint ulong

  • int 整数类型 只能存储整数,不能存储小数。(32位)
  • string 字符串类型 用来存储多个文本,也可以存储空字符,字符串类型的值需要被双引号引起,且这个双引号必须是英文半角下的双引号。
  • char 字符类型 用来存储单个字符,有且只能有一个字符。
  • decimal 金钱类型 使用时值后面需要加一个m 或 M。
  • double 小数类型 既能存储小数也能存储整数,小数点后面15~16位。【常用】

变量的使用规则:如果使用变量,应该先声明再赋值再使用。

浮点型

浮点型变量:浮点型分为单精度型(float)和双精度型(double)两种。

  • float 单精度 float型数据占用4个字节(32bits)存储单元,提供的有效数字是6~7位 赋值后面加F f 后缀
  • double 双精度 double型数据占用8个字节(64bits)存储单元,提供的有效数字是15~16位
  • decimal 高精度 128bits存储单元,赋值后面加 M m 后缀

堆(托管堆):引用类型数据分配内存
栈(堆栈):为值数据分配内存

赋值运算符、赋值表达式

  • =:在这里并不表示等于的意思,而是表示赋值,表示把等号右边的值赋值给等号左边的变量。

、、、cs
int number=10;
、、、

  • +:连接;当+号两边都是字符串的时候,+号就起到连接的作用。相加;两边是数字的时候。

、、、cs
// Console.WriteLine(“用户名:” + n);
// Console.WriteLine(5+5);
、、、

运算符、表达式

表达式:是用操作符和运算式组成的

  1. 算术运算符 +(加) -(减) *(乘) /(除) %(取余数)

  2. 运算符的分类

  • 一元运算符
  • 二元运算符
  • 三元运算符

“ ?: ”是 C#中 唯一一个三元运算符
表达式1 ? 表达式2 : 表达式3 ;

、、、cs
bool sex = true;
sex == true ? “男” : “女”;

/****/

string XXX = true?“男”:“女”;
、、、

  1. 赋值运算符 = +=(a+=3等价于a=a+3) *= /=(a/=3等价于a=a/3) -=

  2. 自增(减)运算符

自增[或者自减] 编程时尽量屏蔽掉前自增和后自增的差别

分类:

前自增	--	++i
后自增	--	i++

异同:

相同:最终都使i的值加1

不同:++i前自增整体表达式的值是i加1之后的值;i++后自增整体表达式的值是i加1之前的值.
  1. 逻辑运算符 !(非) &&(并且、与) ||(或)

对真假的处理:非零是真;零是假

真是用1表示;假是用0(零)表示

&&(与)左边表达式为假 右边表达式肯定不会执行
||(或)左边表达式为真 右边表达式肯定不会执行

关于结构化程序

C#中的流程控制语句有:选择语句、循环语句和跳转语句

顺序结构

自顶而下、依次执行。

选择结构

  1. if语句
  • 单分支if语句
    布尔表达式
    结果只能是 ture false

  • 双分支if语句
    if(表达式1 运算符 表达式2)
    {

    }
    self
    {

    }

  • 多分支if语句

  • 嵌套if语句

  1. switch-case结构;用来处理多条件的定值的判断。

switch 后的表达式必须是一个变量。

语法:
switch(变量或者表达式的值)
{
case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
case 值3:要执行的代码;
break;3
case 值4:要执行的代码;
break;

default:要执行的代码;
break;
}

在多层循环中,break只能终止离它最近的循环!
在多层switch嵌套中,break只能终止离它最近的switch!

执行过程:程序执行到switch处,首先将括号中变量或表达式的值计算出来,然后拿这个值依次跟每个case后面所带的值进行匹配,一但匹配成功,则执行该case所带的代码,执行完成后,遇到break。跳出switch-case结构。
如果,跟每个case所带的值都不匹配,就看这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构将什么都不做。

循环结构

  1. while 循环结构:

while (循环条件)
{
循环体;
}

执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。在while循环中,一般总有那么一行代码,能够改变循环条件,也就是使之总有一天不在成立,如果没有那么一行代码能够改变循环条件,也就是循环条件永远成立,我们称之为这种循环为死循环

死循环:
while(true)
{

}

  1. do … while 循环

do
{
循环体
}while(布尔表达式);

do…while 并不等价于for,当然也不等价于while(主要用于人机交互)
循环结构程序是指根据一定的条件,重复执行一些操作,直到条件不成立时方可退出循环。循环语句一共有4种:whiel、do…while、for、foreach语句。
while和do…while都用来循环次数不确定的程序,区别是while先判断,再执行,最少执行循环0次;而do…while是先执行,再判断,最少执行1次循环。

  1. for 循环

for (表达式1;表达式2;表达式3)
{

}

for循环语句也称为迭代语句,是C#中使用比较广泛的循环语句。for语句在给定循环次数的情况下使用起来

跳转语句

C#中为我们提供了四种跳转语句:

  • continue:立即终止当前这一次循环(继续执行 下一次循环)。
  • break:立即终止当前循环或退出switch语句。
  • goto:无条件跳转,可以跳转到任意指定标签位置。
  • return:跳出循环以及方法。

数组

存储多个值

写法1:
string[] names;
names = new string[3];
names[0] = “张三”;
names[1] = “李四”;
names[2] = “wangwu”;

写法2:动态初始化
string[] names2 = new string[] { “张三”,“李四”, “wangwu” };

写法3:没有 new关键字 静态初始化
string[] name3 = { “藏三”,“李四”,“王五”};

  • 先声明数组 | 数据类型[] 数组名;

  • 创建数组 new | 数组名 = new 数组类型[数组长度];

  • 初始化数组 | 数组名[索引] = 值;

输出数组元素:

获取数组元素 : 数组名[索引]
1.
Console.WriteLine(names2[0]);
2.
for (int i = 0; i < names2.Length; i++)
{
Console.WriteLine(names2[i]);
}
3.
foreach (var item in ages1)
{
Console.WriteLine(item);
}

枚举

语法:
[public] enum 枚举名
{
值1,
值2,
值3,

}

public:公共的,访问不受限制

将枚举声明到命名空间下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。

枚举就是一个变量类型,int–double string decimal

只是枚举、声明、

赋值使用的方式与那些普通的变量类型不一样

枚举类型默认可以和int类型互相转化 枚举类型与int类型是兼容的.

函数

函数就是将一堆代码重用的一种机制。

函数的语法:

[访问修饰符] [static] 返回值类型 函数名(参数列表)
{
函数体;(方法体)
}
返回值类型:如果不需要写返回值,写void。
方法名:Pascal 每个单词的是字母都大写,其余字母小写。
参数列表:完成这个方法所必须提供给这个方法的条件;如果没有参数小括号也不能省略。

访问修饰符:
public:公共的,访问不受限制
private:私有的,访问仅限于此类
protected:受保护的,访问仅限于此类和派生类
internal:程序集内部的,访问仅限于此程序

函数是由函数头部和函数体两部分组成

函数按照定义方式的不同,可以分为自定义函数和系统函数

函数的定义不可嵌套,函数的调用可以嵌套

  1. 参数传递的方式
  • 值传递:这是C#语言中默认的参数传递方式,即在函数调用时,实参仅仅把值的副本拷贝一份传递给形参。

  • 引用传递:需要在参数列表中使用ref关键字实现,这种参数传递方式是指在函数调用时,将实参在内存中的地址(也可称为引用)传递给形参。

  1. 自定义构造函数

构造函数:作用就是实例化类对象
创建类时,系统生成一个默认的构造函数

属性

  • string

    属性:Length

    方法:
    1. Trim() 对字符串去除前后空格
    2. IndexOf() 获取中间字符(串)的索引,返回第一个匹配项索引,未找回-1
    3. LastIndexOf 获取最后一个匹配项索引,未找回-1
    4. EndsWith() 以。。。结尾
    5. Split() 分隔
    6. Substring(n) 截取子字符串,从哪开始截取,截取到最后
    7. Substring(n,Length) 截取子字符串,从哪里开始截,截多长

string str = “”; 和 string str = null; 的区别
string str = “”; 表示字符串在内存中已经分配,但是没内容
string str = null; 表示字符串的对象内存空间未分配,不能访问

异常捕获

在我们的程序中经常出现各种异常,你如果想要程序坚强一些
在代码运行中要经常使用try-catch来进行异常捕获

哪行代码可能出现异常,就“踹”它一脚

语法:

try
{
可能会出现异常的代码;
}
catch
{
出现异常后要执行的代码;
}

执行过程:如果try中的代码没有异常,则catch将不会执行。如果try中的代码出现了异常,这行代码后面的所有代码都将不会执行。而是直接跳到catch中执行代码

例如:

using System;

namespace ConsoleApp11
{
class Program
{
static void Main(string[] args)
{
bool b = true;
//定义布尔类型”b“

        double c = 0,d = 0,f = 0;

        Console.WriteLine("请输入需要转化的华氏温度数值:");

        //异常捕获
        try
        {
            f = Convert.ToDouble(Console.ReadLine());
            //该行代码执行中出现异常错误将不在执行其它代码
        }
        catch
        {
            Console.WriteLine("输入内容不合法");
            b = false;
            //如果try出现错误则 b = false;if语句就将不再执行
        }

        d = f - 32;
        c = d / 9 * 5;

        if (b)
        {
            Console.WriteLine("华氏温度:{0};其摄氏温度为:{1}", f, c);
        }
        

        Console.ReadKey();
    }
}

}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有事没事 敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值