zoukankan      html  css  js  c++  java
  • .net系统自学笔记——C#基础

    C#基础:
    声明变量
    变量的初始化和作用域
    C#的预定义数据类型
    条件语句,循环和跳转语句指定执行流
    枚举
    名称空间
    Main()方法
    基本的命令行C#编译器选项
    System。Console执行控制台IO
    内部注释和文档编制功能
    预处理器指令
    C#编程的推荐规则和约定

    1.代码段:
    using System;
    namespace Wrox
    {
    public c1ass MyFirstClass
    {
    static void"ain()
    {
    Console.WriteLine("Hello world!");
    Console.ReadLine();
    return;
    }
    }
    }
    C#命令行编译器csc.exe:如果使用 csc命 令在命令行上编译代码,就 应注意,NET命 令行工具(包括 CSC)只有在设置了 某些环境变量后才能使 用 .
    以分(;)结尾,语句可以写在多个代码行上,不 需要使用续行字符。用花括号{}把 语句组合为块。单行注释 以两个斜杠字符开头// ,多 行注释 以一条斜杠和一个星号/*开 头,以 一个星号和一条斜杠*/结尾。C#区分大小写。名 称空间。标准的 system名 称空间 包含了 最常用的.NET类 型。 在 C#中 做的所有工作都依赖于.NET基 类。类的声明,修饰符。 每个C#可执行文件(如 控制台应用程序、 Windows应用程序和 Windows服务)都必须有一个入口点——Main()方法 。两个修饰符public和static,该方法要么没有返回值Void,要么返回一个整数Int。方法的声明。

    变量的声明,赋值,初始化。
    类型推断(type inference)使用var关键字:
    需要遵循一些规则:
    ·   变量必须初始化。 否则,编 译器就没有推断变量类型的依据。
    ·   初始化器不能为空。
    ·   初始化器必须放在表达式中。 1
    ●   不能把初始化器设置为一个对象,除非在初始化器中 创建了 一个新对象。
    声明了变量,推断出类型后就不能再改变变量类型了。
    变量作用域:
    1.同名的局部变量不能在同一作用域内声明两次
    2.字段和局部变量的作用域冲突
    3.声明常量Const
     常量具有如下特点:
    1)常量必须在声明时初始化。 指定了 其值后,就不能再改写了。
    2)常量的 值必须能在编译时用于计算。因 此,不 能用从一个变量中 提取的 值来初始化常量。如果需要这么做,应使用只读字段。
    3)常量总是静态的,但注意,不 必(实 际上,是不允许)在常量声明中包含修饰static

    C#预定义类型:
    C#把数据类型分为两种:值类型和引用类型。(数据存储:堆,栈)
     C#有 15个 预定义类型,其 中 13个 是值类型,两 个是引用类型(string 和object)
     预定义的值类型:.内 置的 CTs值 类型表示基本类型,如 整型和浮点类型、 字符类型和布尔类型。
    1.整 型
    C#支 持 8个预定义整数类型:sbyte,short,int,long,byte,ushort,uint,ulong.如果对一个整数是int,uint,long,ulong没有任何显式的声明,则该变量默认为int类型。为了 把输入的 值指定为其他整数类型,可 以 在数字后面加上如下字符,如123u,123ul,123L等。
    2.浮点型:float,double
    3.货币:decimal
    4.布尔:bool
    5.字符:char(表示一个 “16位的Unicode字符)(还可以 用 4位 十六进制的unicode值(如'u0041')、带有数据类型转换的 整数值(如(char)65 )或 十六进制数(如'u0041')表示,还可用转义序列表示)。
    预定义的引用类型:object,string

    流程控制:
    条件语句(if-else,switch)
    循环语句:for,while,do-while,foreach
    跳转语句:goto,break,continue,return

    枚举:
    从长远来看,创 建枚举可以 节省大量时间,减少许多麻烦。可以 使代码更易于维护,有 助于确保给变量指定合法的、期望的 值。使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊、 变化多端的 数来表示。也使代码更易于键入。一 旦代码编译好,枚举就成为基本类型,与 int和float类似 。多用于switch。
    枚举的声明和使用。

    名称空间namespace
    名 称空间 提供了 一种组织相关 类和其他类型的方式 ,与JAVA名称空间不同,C#的名称空间是一种逻辑组合,而 不是物理组合。与类名组合,以【.】分隔,可避免命名冲突。注意不允许在另一个嵌套的名称空间中声明多部分的名称空间。名称空间与程序集无关。同 一个程序集中 可以 有不同的 名称空间,也 可以 在不同的 程序集中定义同一个名称空间中的类型。
    引入命名空间:using(与C/C++:#include,Java:import相比),using可以引入命名空间,也可以为命名空间指定别名。 注意名称空间 别名的修饰符是【::】

    Main()方法:程序入口,这个方法必须是类或结构的静态方法,返回类型是Void或Int,一般为public,不过private也可正常运行。不允许有多个main()方法。(在用CSC的情况下,倒是可以用/main选项,其后跟main()方法所属类的全名来明确告诉编译器哪个类的main()方法是入口)。main()方法可以无参,或者string[] args,就可以csc编译时在程序名后面加上必要的参数。

    有关编译 C#文 件的更多内 容

    控制台 I/O
    System.Console.Write()/WriteLine():输出的内容默认转换为字符串
    System.Console.Read()/ReadLine():读取的内容默认为字符串
    也可用于格式化输出: 需要传入很多参数:第一个参数是花括号中 包含标记的字符串,后面的参数是要格式化到字符串中的值。也可以为值指定宽度,调 整文本在该宽度中的位置,正 值表示右对齐,负 值表示左对齐。可以 使用格式(n,w),其 中 n是 参数索引,w是 宽度值。最后,还可以 添加一个格式字符串以及一个可选的精度值(C,D,E,F,G,N,P,X等)。如果要使用格式字符串,应把它放在给出 参数个数和字段宽度的 标记后面,并用一个冒 号把它们分隔开。最后一个技巧是,可 以 使用占 位符来代替这些格式字符串。如Console.WriteLine("(0:#.00",d);

    注释:
    C#使用传统的C风格注释方式,单行注释用//,多行注释用/*...*/

    XML文档:
    根据特定的 注释 自 动创建 XML格 式的 文档说明。 这些 注释都是单行注释,但都以3条斜杠///开 头,而 不是 通常的 两条斜杠//。 在这些注释中,可 以 把包含类型和类型成员的 文档说明的 标记放在 代码中。
     
    C#编译器可以 把 XML元 素从特定的 注释中 提取出 来,并使 用它们生成一个XML文件。 要让编译器为程序集生成 XML文 档,需 在编译时指定/doc选 项,后 跟要创建的文件名。如果XML注释没有生成格式正确的XML文档,编译器会生成一个错误。注意,编译器自行完成了一些工作 ,它创建了一个<assambly>元素,并为该文件中的每个类型或类型成员添加一个<member>元素。每个<member>元素都有一个name属性,该特性的值是成员的全名,前面有一个字母,含义如下:"T:"表示一个类型,"F:"表示一个字段,"M:"表示一个成员。

    C#预处理器指令:
    预处理器指令的开头都有符号 #。
    1 #define和#undef
    #define的 用法如下所示:#define DEBUG
    它告诉编译器存在给定名称的符号,在 本例中是 DEBUG。 这有点类似于声明一个变量,但这个变量并没有真正的值,只 是存在而己。 这个符号不是实际代码的一部分,而 只在编译器编译代码时存在 。 在 C#代码中它没有任何意义。
    #undef正 好相反——它删除符号的定义:#undef DEBUG
    如果符号不存在,#undef就 没有任何作用。同 样,如 果符号已 经存在,则#define 也 不起作用 。必须把#define和#undef命 令放在 C#源文件的开头位置,在 声明要编译的任何对象的代码之前。本身并没有什么用,但与其他预处理器指令(特别是#if) 结合使用时,它 的功能就非常强大了。
    2 #if,#elif,#else 和 #endif:这些指令告诉编译器是否要编译某个代码块;#if,#elif还 支持一组逻辑运算符!,==,!=,||,如果符号存在,就被认为是 true,否则为 false
    3 #warning和#error
    4 #region 和 #endregion:用于把一 段代码标记为 有给定 名称的 一个块
    5 #line:可以 用于改 变编译器在警告和错误信息中 显示的文件名和行号信息
    6 #pragma指令可以掏或者还原指定的编译警告。可以在类或方法级别执行。

    C#编程规则
    1.关于标识符
    ·   尽管可以包含数字字符,但 它们必须以字母或下划线开头。
    ·   不 能把 C#关 键字用作标识符。
    如果需要把某一保 留字用作标识符(例 如,访 问一个用另一种语言编写的翔 ,那 么可以在标识符的前面加上前缀符号@,告 知编译器其后的内容是一个标识符,而 不是 C#关 键字。最后,标 识符也可以 包含unicode字 符,用 语法uXXXX来指定,其中XXXX是 unicode字 符的 4位 十六进制编码。
    标识符在同 一个作用域内 不要声明 两次。 注意虽然从语法上看,在 标识符中可以 使用下划线字符,但 大多 数情况下最好不要这么做,因 为它不符合 Mcrosoa的 变量命名规则,这种命名规则可以 确保开发人员使用相同的 命名约定,易 于阋读他人编写的 代码。
    用法约定:如:C#中约定是命名变量时不使用任何前缀
    1.命名约定:名称大小写,名称的风格,命名空间的名称,名称和关键字。
    2.属性和方法的使用
    3.字段的使用:一般为私有。有时候也有公共或者静态的。

  • 相关阅读:
    C#面向对象--类
    Unity DOTS--面向数据编程前的准备
    C#面向对象--命名空间
    C#面向对象--多态
    C#面向对象--继承
    C#中堆和栈的区别
    sql执行顺序
    cookie session
    栈和队列
    c# 单例模式
  • 原文地址:https://www.cnblogs.com/gdx4430090/p/3156915.html
Copyright © 2011-2022 走看看