C# 语言入门基础介绍

C# 语言入门基础介绍

C# 是一种通用、面向对象的编程语言,由微软公司开发,广泛应用于业界。在学习 C# 之前,需要了解一些基本的编程概念。

1. C# 语言的特点

C# 语言具有以下特点:

  • 易于学习:语法简单,与其他语言相比较易于理解。
  • 安全性高:内置类型检查和内存管理机制确保程序的稳定和安全。
  • 面向对象:支持面向对象编程,便于开发大型应用程序。
  • 多平台支持:支持在 Windows、Linux 和 macOS 等多种平台上运行。

2. C# 语言的基本语法

2.1 变量和类型

C# 是一种静态类型语言,声明变量时需要指定其类型。常用的类型有 int、double、bool 和 string 等。变量可以通过赋值语句来改变其值,如下所示:

int x = 10;
double y = 3.14;
bool flag = true;
string str = "Hello, world!";

2.2 运算符

C# 支持各种常见的运算符,如加、减、乘、除、模等,也支持比较运算符和逻辑运算符。例如:

int a = 10;
int b = 5;
int c = a + b; // 结果为 15
bool flag = a > b && b < 0; // 结果为 false

2.3 控制结构

C# 支持 if-else、for、while、do-while 和 switch 等常见的控制结构。示例如下:

int score = 90;
if (score >= 60)
{
    Console.WriteLine("及格了!");
}
else
{
    Console.WriteLine("不及格!");
}

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

int j = 0;
while (j < 10)
{
    j++;
    if (j == 5)
        break;
    Console.WriteLine(j);
}

int k = 5;
switch (k)
{
    case 1:
        Console.WriteLine("数字是 1");
        break;
    case 2:
        Console.WriteLine("数字是 2");
        break;
    default:
        Console.WriteLine("数字是其他值");
        break;
}

3. C# 语言的面向对象特性

C# 是一种面向对象的语言,支持封装、继承和多态等特性。

3.1 类和对象

C# 中,类是一种结构化的数据类型,由属性和方法构成。例如,下面定义了一个名为 Person 的类:

class Person
{
    private string name;
    private int age;

    public void SetName(string name)
    {
        this.name = name;
    }

    public string GetName()
    {
        return this.name;
    }

    public void SetAge(int age)
    {
        this.age = age;
    }

    public int GetAge()
    {
        return this.age;
    }
}

通过这个类,可以创建一个名为 p 的对象,并设置其姓名和年龄:

Person p = new Person();
p.SetName("Tom");
p.SetAge(18);

3.2 继承和多态

在 C# 中,可以使用继承来实现代码重用,并通过多态来实现动态调用。例如,下面定义了一个名为 Student 的类,它从 Person 类继承:

class Student : Person
{
    private string school;

    public void SetSchool(string school)
    {
        this.school = school;
    }

    public string GetSchool()
    {
        return this.school;
    }

    public new string GetName()
    {
        return "学生姓名:" + base.GetName();
    }
}

在这个类中,通过 new 关键字实现了方法重写,并添加了一个新的字段 school。

然后,可以创建一个名为 s 的 Student 对象,并调用其方法:

Student s = new Student();
s.SetName("Tom");
s.SetAge(18);
s.SetSchool("清华大学");
Console.WriteLine(s.GetName()); // 输出:学生姓名:Tom

4. 示例

4.1 简单计算器

下面的示例演示了如何实现一个简单的加法计算器。

using System;

namespace Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入两个数字:");
            double a, b;
            double.TryParse(Console.ReadLine(), out a);
            double.TryParse(Console.ReadLine(), out b);
            Console.WriteLine("结果是:" + (a + b));
        }
    }
}

4.2 猜数字游戏

下面的示例演示了如何实现一个猜数字游戏。

using System;

namespace GuessNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rand = new Random();
            int number = rand.Next(1, 101);
            int guess;
            do
            {
                Console.WriteLine("请猜一个数字(1-100):");
                int.TryParse(Console.ReadLine(), out guess);
                if (guess < number)
                    Console.WriteLine("猜小了!");
                else if (guess > number)
                    Console.WriteLine("猜大了!");
            } while (guess != number);
            Console.WriteLine("猜对了!");
        }
    }
}

总结

本文介绍了 C# 语言的基本语法和面向对象特性,并演示了两个示例。希望这些内容能够帮助读者快速了解 C# 编程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 语言入门基础介绍 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java/Web调用Hadoop进行MapReduce示例代码

    Java/Web调用Hadoop进行MapReduce的完整攻略涉及以下步骤: 准备Hadoop集群在进行Java/Web调用Hadoop进行MapReduce前,首先需要准备好Hadoop集群环境。Hadoop集群环境的准备可以参考Hadoop官方文档或其他网络资料。 编写MapReduce程序MapReduce是Hadoop中一种经典的计算框架,用于处理…

    Java 2023年6月15日
    00
  • java的Hibernate框架报错“QueryTimeoutException”的原因和解决方法

    当使用Java的Hibernate框架时,可能会遇到“QueryTimeoutException”错误。这个错误通常是由于以下原因之一引起的: 查询超时:如果查询需要的时间超过了Hibernate配置文件中设置的查询超时时间,则可能会出现此错误。在这种情况下,需要增加查询超时时间以解决此问题。 数据库连接超时:如果数据库连接超时,则可能会出现此错误。在这种情…

    Java 2023年5月4日
    00
  • Java OOM原因以及解决方案

    Java OOM原因以及解决方案 在Java应用程序运行的过程中,由于程序中申请的内存空间超过了JVM所能提供的内存空间,就会出现OOM(Out of Memory)错误。下面我们将详细讨论OOM的原因、解决方案以及示例说明。 OOM原因 内存泄漏 当一个对象不再被程序使用时,它所占用的内存空间应该被JVM的垃圾回收机制清理掉。但是,如果程序中存在内存泄漏,…

    Java 2023年5月27日
    00
  • Go Java 算法之字符串解码示例详解

    Go Java 算法之字符串解码示例详解 什么是字符串解码? 字符串解码指的是将一串被编码的字符串进行解码(还原)成原来的字符串。在实际编码过程中,我们需要对字符串进行编码,以便于传输或存储,但需要使用的时候则需要对编码过的字符串进行解码还原成原来的字符串。 Go Java 字符串解码示例 在 Go Java 中有多种解码回字符串的解决方案,比如 URL d…

    Java 2023年5月20日
    00
  • SpringBoot+jpa配置如何根据实体类自动创建表

    SpringBoot可以通过JPA(Java Persistence API)来进行数据库操作。在使用JPA时,我们可以让它自动创建数据表,而不需要手动创建。 下面是Spring Boot与JPA自动生成数据表的配置方法: 配置数据源 首先,在application.properties中配置数据源: spring.datasource.url=jdbc:m…

    Java 2023年5月20日
    00
  • Spring Data JPA 注解Entity关联关系使用详解

    Spring Data JPA 是 Spring Data 项目中处理 JPA 持久层的一种方法,它提供了很多注解和工具来简化 JPA 操作,其中 Entity 关联关系是 JPA 中的核心概念之一。本文将介绍 Spring Data JPA 中 Entity 关联关系的使用方法,主要包括关联关系的种类、注解的使用和案例演示。 关联关系种类 在 JPA 中,…

    Java 2023年6月3日
    00
  • java多线程消息队列的实现代码

    为了实现Java多线程消息队列的功能,可以通过以下步骤完成: 第一步:定义消息类 定义一个消息类,可以包含消息ID、消息内容、消息时间等属性。 public class Message { private int messageId; private String content; private Date createTime; public Messag…

    Java 2023年5月19日
    00
  • Spring MVC整合FreeMarker的示例

    针对Spring MVC整合FreeMarker的示例,我将给出完整的攻略,包含以下内容: 环境准备 配置FreeMarker 编写Controller 编写FreeMarker模板 示例演示 下面我们详细讲解每一项内容。 环境准备 首先需要准备好环境。在本示例中,我们将使用以下环境: JDK 8 Maven 3 Spring 5 FreeMarker 2.…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部