跳转到内容

C Sharp 语法

来自代码酷

C#语法[编辑 | 编辑源代码]

C#语法是C#编程语言的基础结构,它定义了如何编写有效的C#代码。C#是一种强类型、面向对象的语言,其语法类似于其他C风格语言(如C++和Java),但具有独特的特性和简化。理解C#语法是掌握该语言的第一步。

基本语法结构[编辑 | 编辑源代码]

C#程序由以下基本元素组成:

  • 命名空间(Namespace):用于组织代码
  • 类(Class):定义对象的结构和行为
  • 方法(Method):包含可执行代码
  • 语句(Statement):执行操作的指令
  • 表达式(Expression):产生值的代码片段
  • 注释(Comments):解释代码的非执行文本

以下是一个简单的C#程序示例:

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            // 这是一个简单的C#程序
            Console.WriteLine("Hello, World!");
        }
    }
}

输出:

Hello, World!

变量和数据类型[编辑 | 编辑源代码]

C#是强类型语言,所有变量都必须先声明后使用。C#支持多种数据类型:

值类型[编辑 | 编辑源代码]

  • 整数类型:int, long, short, byte
  • 浮点类型:float, double, decimal
  • 布尔类型:bool
  • 字符类型:char

引用类型[编辑 | 编辑源代码]

  • 字符串:string
  • 对象:object
  • 动态类型:dynamic

变量声明示例:

int age = 25;                    // 整数
double price = 19.99;            // 双精度浮点数
char grade = 'A';                // 字符
string name = "John Doe";        // 字符串
bool isActive = true;            // 布尔值

运算符[编辑 | 编辑源代码]

C#提供多种运算符:

算术运算符[编辑 | 编辑源代码]

+, , *, /, % (取模)

关系运算符[编辑 | 编辑源代码]

==, !=, >, <, >=, <=

逻辑运算符[编辑 | 编辑源代码]

&& (AND), || (OR), ! (NOT)

赋值运算符[编辑 | 编辑源代码]

=, +=, =, etc.

运算符示例:

int a = 10, b = 20;
int sum = a + b;            // 30
bool result = (a < b);       // true

控制结构[编辑 | 编辑源代码]

C#提供多种控制程序流程的结构:

条件语句[编辑 | 编辑源代码]

if (condition)
{
    // 条件为真时执行
}
else if (anotherCondition)
{
    // 另一个条件为真时执行
}
else
{
    // 其他情况执行
}

循环结构[编辑 | 编辑源代码]

// for循环
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(i);
}

// while循环
while (condition)
{
    // 循环体
}

// do-while循环
do
{
    // 至少执行一次
} while (condition);

switch语句[编辑 | 编辑源代码]

switch (expression)
{
    case value1:
        // 代码块
        break;
    case value2:
        // 代码块
        break;
    default:
        // 默认代码块
        break;
}

方法[编辑 | 编辑源代码]

方法是包含一系列语句的代码块,可以接受参数并返回值。

方法定义语法:

[access-modifier] [return-type] [method-name]([parameters])
{
    // 方法体
    return [value]; // 如果返回类型不是void
}

示例:

public int Add(int a, int b)
{
    return a + b;
}

// 调用方法
int result = Add(5, 3);  // 返回8

类和对象[编辑 | 编辑源代码]

C#是面向对象的语言,类是其基本构建块。

类定义示例:

public class Person
{
    // 字段
    public string Name;
    public int Age;
    
    // 方法
    public void Introduce()
    {
        Console.WriteLine($"Hi, I'm {Name} and I'm {Age} years old.");
    }
}

// 使用类
Person person = new Person();
person.Name = "Alice";
person.Age = 30;
person.Introduce();

输出:

Hi, I'm Alice and I'm 30 years old.

异常处理[编辑 | 编辑源代码]

C#使用try-catch块处理异常:

try
{
    // 可能抛出异常的代码
    int result = 10 / int.Parse("0");
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero!");
}
catch (Exception ex)
{
    Console.WriteLine($"An error occurred: {ex.Message}");
}
finally
{
    // 无论是否发生异常都会执行的代码
    Console.WriteLine("Cleanup code here");
}

实际应用案例[编辑 | 编辑源代码]

以下是一个简单的银行账户管理系统示例,展示了C#语法的实际应用:

public class BankAccount
{
    private string _accountNumber;
    private decimal _balance;
    
    public BankAccount(string accountNumber, decimal initialBalance)
    {
        _accountNumber = accountNumber;
        _balance = initialBalance;
    }
    
    public void Deposit(decimal amount)
    {
        if (amount <= 0)
            throw new ArgumentException("Deposit amount must be positive");
            
        _balance += amount;
    }
    
    public void Withdraw(decimal amount)
    {
        if (amount <= 0)
            throw new ArgumentException("Withdrawal amount must be positive");
            
        if (amount > _balance)
            throw new InvalidOperationException("Insufficient funds");
            
        _balance -= amount;
    }
    
    public decimal GetBalance()
    {
        return _balance;
    }
}

// 使用示例
BankAccount account = new BankAccount("123456789", 1000.00m);
account.Deposit(500.00m);
account.Withdraw(200.00m);
Console.WriteLine($"Current balance: {account.GetBalance():C}");

输出:

Current balance: $1,300.00

高级语法特性[编辑 | 编辑源代码]

对于更高级的用户,C#还提供以下语法特性:

Lambda表达式[编辑 | 编辑源代码]

Func<int, int, int> add = (x, y) => x + y;
int result = add(3, 4);  // 7

LINQ查询[编辑 | 编辑源代码]

var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

异步编程[编辑 | 编辑源代码]

public async Task<string> FetchDataAsync()
{
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("https://example.com");
    return result;
}

语法关系图[编辑 | 编辑源代码]

以下mermaid图展示了C#基本语法元素之间的关系:

graph TD A[C#程序] --> B[命名空间] A --> C[类] A --> D[接口] B --> E[类型声明] C --> F[字段] C --> G[属性] C --> H[方法] H --> I[语句] I --> J[表达式] I --> K[控制结构]

总结[编辑 | 编辑源代码]

C#语法提供了强大而灵活的方式来构建各种应用程序。从基本的数据类型和控制结构到高级的面向对象特性和现代语言功能,C#语法设计既考虑了初学者也考虑了经验丰富的开发人员的需求。通过掌握这些语法基础,开发者可以构建从简单控制台应用到复杂企业系统的各种解决方案。