• 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. Pytorch多进程最佳实践

    预备知识 模型并行( model parallelism ):即把模型拆分放到不同的设备进行训练,分布式系统中的不同机器(GPU/CPU等)负责网络模型的不同部分 —— 例如,神经网络模型的不同网络层 ...

  2. python网络编程-动态导入和断言

    一:动态导入importlib 在程序运行的过程中,根据变量或者配置动态的决定导入哪个模块,可以使用模块importlib importlib使用示例 二:断言assert 如果接下来的程序依赖于前面 ...

  3. 排序与相关性(Sorting and Relevance)

    本文翻译自Elasticsearch官方指南的Sorting and Relevance一章的第一节. 原文地址:http://www.elastic.co/guide/en/elasticsearc ...

  4. 组件化表单解决方案AForm 1.3 发布

    v1.3 更新日志 输入控件的实现改为实例化模式,同类型多个输入控件在同一个表单不会冲突 输入控件实现了继承 可以使用AForm.create创建表单,和使用new AForm创建实例的参数和结果一样 ...

  5. Robot Framework测试框架用例脚本设计方法

    Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动 ...

  6. B树 B+树 红黑树

    B-Tree(B树) 具体讲解之前,有一点,再次强调下:B-树,即为B树.因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解. ...

  7. Ubuntu 搭建etcd

    一.简介 etcd是一个高可用的分布式键值(key-value)数据库.etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现. 提供配置共享和服务发现的系统比较多,其中最为大家熟知的是 ...

  8. CRLF LF CR

    The Carriage Return (CR) character (0x0D, \r) moves the cursor to the beginning of the line without ...

  9. babel使用中不想使用 严格模式 如何去除?

    使用babel进行es6转es5时,默认转化之后是严格模式,有些时候我们想去除严格模式. 解决方法如下 安装 babel-plugin-transform-remove-strict-mode 依赖 ...

  10. Python 学习之list和Tuple类型

    1.创建list L = ['Adam', 95.5, 'Lisa', 85, 'Bart', 59] print(L) print(L[1],L[3],L[5])#索引 不能越界 正向访问 #95. ...