• C#基础

    • 使用C#命名编译器csc.exe,编译C#程序
  • 变量
    • 变量一般初始化后才能使用
    • 类型判断弱类型var,根据初始值判断类型,
    • 变量作用域,可以访问该代码的区域
      • 类中定义的成员变量和属性,作用在类中
      • 局部变量声明在方法内或者括号代码块的作用域中
      • 循环中声明的变量,作用在循环内
      • 局部变量的作用域会发生冲突,同名局部变量在同一作用域内不能声明2次
      • 字段和局部变量的作用域会发生冲突,同一类型级别下,不能声明字段与变量名相同。
    • 常量
      • 使用const修饰,必须初始化时赋值,一旦赋值则不能修改,它是静态的成员变量,一般用做避免修改的值
  • 预定义数据类型
    • 值类型和引用类型

      • 值类型存储在堆栈上,引用类型存在托管堆上.
      • 值类型有int,string,float,decimal,double结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型
      • 引用类型有数组,用户定义的类、接口、委托,object,字符串
      • CTS类型
        • CTS类型值不是定义在C#语言中,是定义在.NET FrameWork核心类库中,所以是预定义类型
      • 预定义值类型
        • 整型、浮点型、字符类型、布尔类型
      • 预定义引用类型
        • object类型和string类型
        • object类型是其他类型的父类
  • 流控制
    • 条件语句if

      • if可以有很多分支,满足分支的条件,则执行分支里面的事件,else否则执行的事件

      • switch固定值开关,满足条件值则执行满足条件的一个或多个事件。

      • 循环for,foreach,while,do-while

      • for循环,针对索引值的遍历,分为初始化,表达式(满足迭代的表达式,满足则进行下一次),迭代(递增循环计数器);执行顺序:先初始化,再判断是否满足迭代表达式,执行事件,计数

      • foreach循环,面向对象的遍历,直接针对值的遍历

      • while循环,针对表达式的遍历,循环前无法知道执行语句块的次数

      • do-while循环,先执行事件再进行逻辑判断

      • 一般用for和foreach遍历

      • 跳转语句goto,先执行标签语句,再执行下一句,先执行num=8,再执行num=9
        • goto Tag1:
        • num=9;
        • Tag1:
        •   num
      • 循环结束语句break,中断循环操作
      • 循环迭代语句continue,结束本次操作,执行下一轮操作
      • 方法返回语句return,结束当前方法的继续操作,返回到调用的地方进行下一步操作,可附带当前方法操作结果值.
  • 枚举

    • 用户定义的整数类型
    • 枚举组织了一系列的数据值,可以包含描述值,方便引用
  • 命名空间
    • 类型的组织,类型的作用域
    • 命名空间可以嵌套,同一个项目里允许定义其他命名空间。interneal修饰符指定了命名空间的访问域。
    • using语句,其他命名空间的引用,在实际项目开发中除了.NET FrameWork本身引用之外.需要添加该引用之后才能在代码中引用
    • 命名空间过长,允许以别名进行调用.using alias=System.Data 调用:alias.DataTable
  • Main方法
    • C#程序运行入口
    • 一个C#程序不同域之间不允许多个Main方法
    • Main方法参数args是一个字符串数组,使用这个数组可以访问命令行传过来的选项
  • C#编译
    • 使用C#命名编译器csc.exe,编译C#程序,编译示范语句:csc /t:library MathLibrary.cs
    • 其他语句如下:
  • 控制台I/O
    • 有三种C#程序读写数据的方法Write、WriteLine、ReadLine;都属于Console类的方法.Write方法直接输出控制台信息,WriteLine输出后进行了换行,ReadLine输入信息
    • 输出的预定义数据类型字符串格式
  • 注释
    • 代码的说明
    • 有3种注释
    • //单行注释
    • /**/多行注释
    • ///文档注释
    • 注释标签列表
  • C#预处理指令
    • 方法代码编写
    • 指令不可执行,以#符号标识
    • #define和#undef不属于代码一部分,旨在于定义名称的符号,需要配合其他指令使用,指令必须放在源文件开头位置
    • #if,#else,#elif,#endif流程指令,方便调试.
    • #define定义在源代码最上面,#define定义的符号标签1、标签2里面的代码会执行,标签3里面的代码不会执行.

    • #warning和#error编译器运行到这个指令时,会警示和提示错误.之和编译继续进行.
    • #if DEBUG
      #warning "debug状态"
      #elif RELEASE
      #warning "Release状态"
      #else
      #error "什么状态"
      #endif
    • #region和endregion给一个代码块起一个名字,方便分类和查找
  • C#编程规则
    • 标识符规则,标识符给类、类成员、变量定义的名称

      • 允许包含数字,但是只能以字母或下划线开头
      • 不能是.NET FrameWork定义的关键字,比如int,string
    • 用法约定
      • 命名约定一般以Pascal规则,首字母大写,减少下划线连接的单词
      • 私有成员都是小写camel形式.
      • 类私有字段以"_"开头或者小写字母开头
      • 方法参数都是小写camel形式.
      • 名称风格需保持一致
      • 命名空间以公司名称为前缀,软件开发名为后缀
      • 属性设置如果逻辑过多,最好使用方法代替,如果属性只需要读取值,就不用使用写的属性

C#高级编程9-第2章 核心C#的更多相关文章

  1. 读《C#高级编程》第1章问题

    读<C#高级编程>第1章 .Net机构体系笔记 网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但是做事情很能坚持. 本章主要是了解.Net的结构,都是一些概念,并没 ...

  2. C#高级编程9 第17章 使用VS2013-C#特性

    C#高级编程9 第17章 使用VS2013 编辑定位到 如果默认勾选了这项,请去掉勾选,因为勾选之后解决方案的目录会根据当前文件选中. 可以设置项目并行生成数 版本控制软件设置 所有文本编辑器行号显示 ...

  3. C#高级编程9 第18章 部署

    C#高级编程9 第18章 部署 使用 XCopy 进行部署 本主题演示如何通过将应用程序文件从一台计算机复制到另一台计算机来部署应用程序. 1.将项目中生成的程序集复制到目标计算机,生成的程序集位于项 ...

  4. C#高级编程9 第16章 错误和异常

    C#高级编程9 第16章 错误和异常 了解这章可以学会如何处理系统异常以及错误信息. System.Exception类是.NET运行库抛出的异常,可以继承它定义自己的异常类. try块代码包含的代码 ...

  5. C#高级编程笔记之第二章:核心C#

    变量的初始化和作用域 C#的预定义数据类型 流控制 枚举 名称空间 预处理命令 C#编程的推荐规则和约定 变量的初始化和作用域 初始化 C#有两个方法可以一确保变量在使用前进行了初始化: 变量是字段, ...

  6. C#高级编程9 第14章 内存管理和指针

    C#高级编程9 内存管理和指针 后台内存管理 1) 值数据类型 在处理器的虚拟内存中有一个区域,称为栈,栈存储变量的浅副本数据,通过进入变量的作用域划分区域,通过离开变量的作用域释放. 栈的指针指向栈 ...

  7. python高级编程(第12章:优化学习)1

    # -*- coding: utf-8 -*-# python:2.x__author__ = 'Administrator'#由于5,6,7,8,9,10,11主要是在包,测试之类的学习所以这边就不 ...

  8. ASP.NET MVC5 高级编程-学习日记-第一章 入门

    1.1 ASP.NET MVC 简介 ASP.NET是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.1.1 MVC模式 ...

  9. 《asp.net mvc3 高级编程》第三章 视图

    一.视图的作用 视图的职责是向用户提供界面.从ASP.NET MVC3开始,视图数据也可以通过ViewBag属性访问.例如:ViewBag.Message 就等于ViewData["Mess ...

  10. C#高级编程笔记之第一章:.NET体系结构

    1.1 C#与.NET的关系 C#不能孤立地使用,必须与.NET Framework一起使用一起考虑. (1)C#的体系结构和方法论反映了.NET基础方法论. (2)多数情况下,C#的特定语言功能取决 ...

随机推荐

  1. GDB调试基础

    GDB调试基础 https://lesca.me/archives/gdb-basic-knowledge.html GDB笔记(二):条件断点.命令列表.监视点 https://lesca.me/a ...

  2. Git如何设置多个用户

    前言 由于我们在使用GitHub时,通常不希望带有公司信息,所以需要独立的Git账户来提交练习代码,本文记录一下如何配置多个Git账户并创建公钥 正文 1.首先进入~/.ssh文件夹 2.然后创建一个 ...

  3. 【轨迹动画css】不规则轨迹动画css教程,弹球,客服广告悬浮层都可以用

    小demo如下,可更具自己需求修改: css @keyframes animX{ 0% {left: 0px;} 100% {left: 500px;} } @keyframes animY{ 0% ...

  4. Python 正则表达式提高

    re模块的高级用法 search re.search(pattern, string[, flags]) ​ 若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果 ...

  5. bootstrap File Input 多文件上传插件使用记录(二)删除原文件

    在上一篇文章中,主要介绍了file input插件的初始化和多文件同步上传到服务器的相关配置等.这篇主要介绍file input插件的编辑等. 使用场景: 在后台管理框架中,一条数据中包含不固定的多张 ...

  6. CxGrid 表格列内容居中

    首先每一列 Cxgrid 都不知道要当成什么来出来,所以每一列都有个properties 让你来设置,告诉cxgrid 这列的内容是什么,然后根据你给出的内容 再来决定用什么居中方式: 就是说 官方再 ...

  7. linux下Ctrl命令组合

    1.键盘组合键操作 ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程.常用于终止正在运行的程序. ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程.  ...

  8. SonarQube的安装、配置与使用(windows)

    onarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:htt ...

  9. head命令 tail命令

    head命令 head命令用于显示文件的开头的内容.在默认情况下,head命令显示文件的头10行内容. -n<数字>:指定显示头部内容的行数: -c<字符数>:指定显示头部内容 ...

  10. SQL group 分组查询

    1.使用group by进行分组查询  在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:  被分组的列 为每个分组返回一个值得表达式,例如 ...