C#语言基础速成Day02

“好读书,不求甚解;每有会意,便欣然忘食。”


前言

昨天我们对C#语言有了一个初步的体验,今天我们来学习C#语言的语法基础部分:


我们今天主要学习基本语法,看不懂的没有关系我们会在后面的内容中详细学习。
C# 属于 C 语言家族。 如果你使用过 C、C++、JavaScript 或 Java,那么也会熟悉 C# 语法。 与 C 语言家族中的所有语言一样,分号 (;) 定义语句的结束。 C# 标识符区分大小写。 C# 同样使用大括号({ 和 })、控制语句(例如 if、else 和 switch)以及循环结构(例如 for 和 while)。 C# 还具有适用于任何集合类型的 foreach 语句。

文章有误敬请斧正 不胜感恩!||Day02

提示:以下是本篇文章正文内容

一、C#语法基础都有什么?

总结C#语法基础主要包括以下几个方面:

1. 基本结构

  • 命名空间:用于组织代码。使用 namespace 关键字。
  • :C# 是一种面向对象的语言,所有代码都包含在类中。使用 class 关键字定义类。
  • 主方法:程序的入口点。static void Main(string[] args)
namespace MyNamespace
{
    class MyClass
    {
        static void Main(string[] args)
        {
            // 程序入口
        }
    }
}

2. 数据类型和变量

  • 基本数据类型:int, float, double, char, string, bool。
  • 变量声明和初始化:可以在声明时赋值。
int number = 10;
float pi = 3.14f;
double bigNumber = 1.23e5;
char letter = 'A';
string message = "Hello, World!";
bool isTrue = true;

3. 操作符

  • 算术操作符+, -, *, /, %
  • 比较操作符==, !=, <, >, <=, >=
  • 逻辑操作符&&, ||, !

4. 控制结构

  • 条件语句if, else if, else, switch
if (condition)
{
    
}
else if (anotherCondition)
{
   
}
else
{
    
}

switch (variable)
{
    case value1:
        
        break;
    case value2:
        
        break;
    default:
        
        break;
}
  • 循环语句for, while, do...while, foreach
for (int i = 0; i < 10; i++)
{
  
}

while (condition)
{
   
}

do
{
   
} while (condition);

foreach (var item in collection)
{
   
}

5. 方法

  • 方法声明:包括返回类型、方法名和参数。
public returnType MethodName(parameters)
{
    // 方法体
}
  • 调用方法:通过实例或者类名调用。
MyClass myObject = new MyClass();
myObject.MethodName();

6. 面向对象编程

  • 类和对象:使用 class 关键字定义类,通过 new 关键字创建对象。
  • 继承:使用 : 关键字实现继承。
  • 封装:使用 private, public, protected 控制成员的访问权限。
  • 多态:通过方法重载和重写实现。
  • 这点与Java的思想比较类似,可以试着融汇贯通。
public class BaseClass
{
    public virtual void Method()
    {
        // 基类方法
    }
}

public class DerivedClass : BaseClass
{
    public override void Method()
    {
        // 派生类方法
    }
}

7. 属性

  • 自动属性:简化的属性定义方式。
  • 完整属性:包含自定义逻辑的属性。
public class MyClass
{
    public int MyProperty { get; set; }

    private int _myField;
    public int MyField
    {
        get { return _myField; }
        set { _myField = value; }
    }
}

8. 异常处理

  • try-catch-finally 结构用于处理运行时错误。
try
{
    // 可能产生异常的代码
}
catch (Exception ex)
{
    // 处理异常
}
finally
{
    // 总是执行的代码
}

9. 委托和事件

  • 委托:类似于函数指针,用于引用方法。
  • 事件:基于委托,用于实现发布-订阅模式。
public delegate void MyDelegate();

public class MyClass
{
    public event MyDelegate MyEvent;

    public void RaiseEvent()
    {
        if (MyEvent != null)
        {
            MyEvent();
        }
    }
}

10. 泛型

  • 泛型类和方法:提供类型参数以实现代码的重用。
public class GenericClass<T>
{
    public T Value { get; set; }
}

public void GenericMethod<T>(T parameter)
{
    // 方法体
}

二、C#基本结构、数据类型和变量和基本操作符

1.C#基本结构

C#语言的基本结构包括命名空间、类、方法和语句。以下是一个简单的C#程序示例,以及对其各个部分的解释:

using System;

namespace MyNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

1.1. using 指令

using 指令用于引入命名空间,使得在代码中可以直接使用命名空间中的类和方法。

using System;

System 是一个常见的命名空间,其中包含了基本的输入输出操作(如 Console 类)。

1.2. 命名空间

命名空间用于组织代码和避免名称冲突。

namespace MyNamespace
{
    // 类和其他代码定义在这里
}

在这个示例中,MyNamespace 是命名空间的名称。

1.3. 类

类是C#的基本结构,用于封装数据和行为。每个C#程序至少包含一个类,其中包含 Main 方法,这是程序的入口点。

class Program
{
    // 方法和其他代码定义在这里
}

在这个示例中,Program 是类的名称。

1.4. Main 方法

Main 方法是C#程序的入口点。当程序运行时,首先执行 Main 方法中的代码。

static void Main(string[] args)
{
    // 代码执行的入口
}
  • static 关键字表示 Main 方法是静态的,可以通过类名直接调用而不需要实例化类。
  • void 表示方法不返回任何值。
  • string[] args 表示 Main 方法可以接受一个字符串数组作为参数,这些参数通常是命令行参数。

1.5. 语句

语句是执行单元。每个语句以分号(;)结尾。

Console.WriteLine("Hello, World!");
  • Console.WriteLine 方法用于向控制台输出文本并换行。
  • "Hello, World!" 是要输出的字符串。

1.6. 注释

注释用于增加代码的可读性,不会被编译器执行。

  • 单行注释以 // 开头:
// 这是一个单行注释
  • 多行注释以 /* 开头并以 */ 结束:
/*
这是一个
多行注释
*/

1.7. 完整的C#程序示例

using System;

namespace MyNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            // 输出 "Hello, World!" 到控制台
            Console.WriteLine("Hello, World!");

            // 定义并初始化一个变量
            int number = 10;
            Console.WriteLine("Number: " + number);

            // 调用一个方法
            PrintGreeting("Alice");
        }

        // 定义一个方法
        static void PrintGreeting(string name)
        {
            Console.WriteLine("Hello, " + name + "!");
        }
    }
}

在这个示例中,除了基本的结构外,还展示了如何定义和调用方法,以及如何使用变量。通过理解这些基本结构,可以开始编写和理解C#程序。

2.数据类型和变量

2.1. 数据的量级

1024字节(byte)= 1KB

  • 1024KB = 1MB
  • 1024MB = 1GB
  • 1024GB = 1TB
  • 1024TB = 1PB

2.2.数据类型

  • bool:
    • 0000 0000 表示 false
    • 0000 0001 表示 true
  • sbyte: 有符号的8位整数。范围:-128 到 +127。
    • 第一位表示符号(+/-)。
    • 特殊情况:1000 0000 表示 -128。
  • byte: 无符号的8位整数。范围:0 到 255。
  • short: 有符号的16位整数。范围:-32768 到 +32767。
  • int: 有符号的32位整数。范围:-2,147,483,648 到 +2,147,483,647。最常用的整数类型,占4个字节。
  • long: 有符号的64位整数。范围:-9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807。
  • float: 单精度浮点数,通常用于表示小数。
  • double: 双精度浮点数,用于需要更高精度的小数。
  • decimal: 高精度浮点数,极少使用,一般用于需要极高精度的计算。

2.3.常量与变量

  • 变量:在程序运行期间可以改变。
    • 声明:数据类型 变量名 = 初值;
    • 默认值:int/float 默认值是 0,char 默认值是 ‘\0’。
  • 常量:在程序运行期间不能改变。
    • 声明:const 数据类型 变量名 = 初值;
    • 例如:const float MONEY = 100.35f;

2.4.命名规则

  • 变量名只能包含字母、数字、@和下划线(_),且不能以数字开头。
  • 不能使用系统关键词。
  • 推荐使用英文单词,不要用拼音。
  • 驼峰命名法
    • 大驼峰:每个单词的首字母大写。例如:MyHeroDamage
    • 小驼峰:第一个单词首字母不大写,后面每个单词的首字母大写。例如:myHeroDamage
    • 见名知意:约等于不会的用拼音。

3.运算和类型转换等

3.1.运算符

  • 赋值运算符=,将后面的值赋给前面的变量。
  • 算术运算符+, -, *, /, %
    • 例如:a / b,除法中除数不能为0。
  • 自增和自减运算符++--
    • 例如:a++ 等价于 a = a + 1
  • 复合运算符+=, -=, *=, /=, %=
    • 例如:a += 4 等价于 a = a + 4

3.2.输入与输出

  • 输出
    • Console.WriteLine();:输出内容并换行。
    • Console.Write();:输出内容但不换行。
  • 输入
    • Console.Read();:从屏幕读取一个字符,并返回该字符所对应的整型数字。
    • Console.ReadLine();:从屏幕读取一串字符,并返回该字符串。

3.3类型转换

3.3.1 隐式转换:

将占用字节小、取值范围小、精度小的类型转换为占用字节大、取值范围大、精度高的类型。例如:

sbyte englishScore = 100;
int myScore = englishScore;  // sbyte --> int
long classScore = myScore;  // int --> long
float newScore = myScore;  // int --> float
double newClassScore = newScore;  // float --> double
3.3.2显式转换(强制转换):

将占用字节大、取值范围大、精度高的类型转换为占用字节小、取值范围小、精度小的类型。需要强制转换修饰符,可能会丢失精度。例如:

int damage = 10000;
sbyte health = (sbyte)damage;  // int --> sbyte
Console.WriteLine(health);  // 输出结果:16

float mathScore = 90.5f;
int myAllScore = (int)mathScore;  // float --> int
Console.WriteLine(myAllScore);  // 输出结果:90

3.4.预编译指令

  • Region:用于代码的折叠和展开。
    #region MyRegion
    // 代码块
    #endregion
    

4.快捷键部分

注释的快捷键为ctrl+k+c
取消注释ctrl+k+u


总结:

例如:以上就是今天要讲的内容,本文详细讲了变量和运算符部分,明天我们会讲逻辑语句和控制语句等,持续更新中~
如有帮助,请留下您的关注~在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

blaizeer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值