• C#笔记:C#程序基本内容


    1 C#程序主要组成部分

    • 命名空间声明
      • 一个class
        • class方法
          • 至少包含一个Main方法
        • class 属性

    2 举例:Hello World

    C#语句以;结尾

    1. using System;
    2. /*命名空间声明(Namespace declaration)
    3. using 关键字用于在程序中包含 System 命名空间
    4. 一个程序一般有多个 using 语句
    5. 在任何 C# 程序中的第一条语句都是:using System;*/
    6. //和C++一样,多行注释用'/* */'囊括,单行注释用‘//’
    7. namespace HelloWorldApplication
    8. {/*namespace 声明*/
    9. /*一个 namespace 里包含了一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld。*/
    10. class HelloWorld
    11. {
    12. /* class 声明
    13. 类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。
    14. 在这里,HelloWorld 类只有一个 Main 方法。*/
    15. static void Main(string[] args)
    16. {
    17. /* Main 方法,是所有 C# 程序的 入口点
    18. Main 方法说明当执行时 类将做什么动作。*/
    19. Console.WriteLine("Hello World!");
    20. //在屏幕上显示消息 "Hello World"。
    21. }
    22. }
    23. }

    输出就是“Hello World!"

    参考内容:C# 程序结构 | 菜鸟教程 (runoob.com)

    3 成员变量,成员函数,类的实例化

    1. using System;
    2. /*命名空间声明(Namespace declaration) */
    3. namespace Rectanglepplication
    4. {/*namespace 声明*/
    5. /*一个 namespace 里包含了一系列的类。*/
    6. class Rectangle
    7. {
    8. /* class 声明*/
    9. double length;
    10. double width;
    11. //Rectangle类的成员变量
    12. public void Acceptdetails()
    13. {
    14. length = 4.5;
    15. width = 3.5;
    16. //设置成员变量属性
    17. }
    18. //以下是各个成员函数,在类内生命
    19. public double GetArea()
    20. {
    21. return length * width;
    22. }
    23. public void Display()
    24. {
    25. Console.WriteLine("Length: {0}", length);
    26. Console.WriteLine("Width: {0}", width);
    27. Console.WriteLine("Area: {0}", GetArea());
    28. }
    29. }
    30. class ExecuteRectangle
    31. {
    32. //执行矩阵相关的操作
    33. static void Main(string[] args)
    34. {
    35. Rectangle r = new Rectangle();
    36. r.Acceptdetails();
    37. r.Display();
    38. }
    39. }
    40. }

    输出内容

    1. Length: 4.5
    2. Width: 3.5
    3. Area: 15.75

    3.1 构造函数 

    类的 构造函数 是类的一个特殊的成员函数,当创建类的新对象时执行

    构造函数的名称与类的名称完全相同,它没有任何返回类型

    3.2 析构函数

    类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。

    析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。

    析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。

    3.3 静态成员

    • 可以使用 static 关键字把类成员定义为静态
    • 当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
    • 也可以把一个成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在。

     

    4 C#数据类型

    值类型

    类型描述范围默认值
    bool布尔值True 或 FalseFalse
    byte8 位无符号整数0 到 2550
    sbyte8 位有符号整数类型-128 到 1270
    char16 位 Unicode 字符U +0000 到 U +ffff'\0'
    decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 10^28 到 7.9 x 10^28) / 100 到 280.0M
    double64 位双精度浮点型(+/-)5.0 x 10^-324 到 (+/-)1.7 x 10^3080.0D
    float32 位单精度浮点型-3.4 x 10^38 到 + 3.4 x 10^380.0F
    int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
    uint32 位无符号整数类型0 到 4,294,967,2950
    long64 位有符号整数类型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
    ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
    short16 位有符号整数类型-32,768 到 32,7670
    ushort16 位无符号整数类型0 到 65,5350

    引用类型

    object
    • 对象(Object)类型 是 C# 通用类型系统中所有数据类型的终极基类。
    • 对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值
    • 在分配值之前,需要先进行类型转换
      • 当一个值类型转换为对象类型时,则被称为 装箱
      • 当一个对象类型转换为值类型时,则被称为 拆箱

    dynamic
    • 动态(Dynamic)类型
    • 可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
    • 与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

    字符串类型

    4.1 转义函数

    转义序列含义
    \\\ 字符
    \'' 字符
    \"" 字符
    \?? 字符
    \b退格键(Backspace)
    \f换页符(Form feed)
    \n换行符(Newline)
    \r回车
    \t水平制表符 tab
    \v垂直制表符 tab

    4.2 sizeof函数

    得到一个类型在特定平台上的准确尺寸(以字节为单位)

    1. using System;
    2. /*命名空间声明(Namespace declaration) */
    3. namespace SizeofApplication
    4. {/*namespace 声明*/
    5. class ExecuteRectangle
    6. {
    7. //执行矩阵相关的操作
    8. static void Main(string[] args)
    9. {
    10. Console.WriteLine(sizeof(int));
    11. }
    12. }
    13. }
    14. //输出:4

    5 输入

    默认的输入类型是String

    1. static void Main(string[] args)
    2. {
    3. string a;
    4. a = Console.ReadLine();
    5. Console.WriteLine(a);
    6. }

    5.1 类型转换

    可以用其他方法进行类型转换

    1. static void Main(string[] args)
    2. {
    3. int a;
    4. a = Convert.ToInt32(Console.ReadLine());
    5. Console.WriteLine(a);
    6. }
    ToBoolean如果可能的话,把类型转换为布尔型。
    ToByte把类型转换为字节类型。
    ToChar如果可能的话,把类型转换为单个 Unicode 字符类型。
    ToDateTime把类型(整数或字符串类型)转换为 日期-时间 结构。
    ToDecimal把浮点型或整数类型转换为十进制类型。
    ToDouble把类型转换为双精度浮点型。
    ToInt16把类型转换为 16 位整数类型。
    ToInt32把类型转换为 32 位整数类型。
    ToInt64把类型转换为 64 位整数类型。
    ToSbyte把类型转换为有符号字节类型。
    ToSingle把类型转换为小浮点数类型。
    ToString把类型转换为字符串类型。
    ToType把类型转换为指定类型。
    ToUInt16把类型转换为 16 位无符号整数类型。
    ToUInt32把类型转换为 32 位无符号整数类型。
    ToUInt64把类型转换为 64 位无符号整数类型。

    6 运算符

    ++自增运算符,整数值增加 1
    --自减运算符,整数值减少 1
    <<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。
    >>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。
    sizeof()返回数据类型的大小。
    typeof()返回 class 的类型。
    &

    返回变量的地址。

    &a; 将得到变量的实际地址。

    *

    变量的指针。

    *a; 将指向一个变量。
    ? :

    条件表达式

    如果条件为真 ? 则为 X : 否则为 Y

    7 条件判断

    7.1 if

    1. if(...)
    2. {
    3. ....
    4. }
    5. else if(...)
    6. {
    7. ...
    8. }
    9. else
    10. {
    11. ....
    12. }

    7.2 switch

    1. switch(...)
    2. {
    3. case ...:
    4. ....
    5. break;
    6. case ...:
    7. ....
    8. break;
    9. default:
    10. ...
    11. break;
    12. }

    8 循环语句

    8.1 while

    1. while(...)
    2. {
    3. ...
    4. }

    8.2 for 

    1. for(int i=1;i<20;i++)
    2. {
    3. ...
    4. }

    8.3 do while

    1. do
    2. {
    3. ...
    4. }while(...);

    9 C# 方法

    1. public/private/protected 返回类型 函数名字(形参列表)
    2. {
    3. ...
    4. }

    10 数组

    声明数组
    datatype[] arrayName;
    初始化数组
    datatype[] arrayName = new datatype[10];
    datatype[] arrayName = {1,2,3,4};
    二维数组datatype[,] arrayName;

    11 继承

    1. class <基类>
    2. {
    3. ...
    4. }
    5. class <派生类> : <基类>
    6. {
    7. ...
    8. }

  • 相关阅读:
    Vue太难啦!从入门到放弃day01——vue基础语法
    让学前端不再害怕英语单词(三)
    指针的定义、初始化和引用
    Linux命令之find
    leetcode 139. 单词拆分
    Element---基于VUE的桌面端组件库
    【数据结构与算法】JavaScript实现双向链表
    解决ubuntu系统python2.7安装uwsgi报错
    小白学习c++的的第一节课
    拷贝初始化与赋值时的拷贝与移动操作
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/126310074