首页 > 编程语言 >C#语言基础速成Day02

C#语言基础速成Day02

时间:2024-08-03 13:25:38浏览次数:18  
标签:Console C# Day02 void 速成 int Main public

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

文章目录

  • 前言
    • 文章有误敬请斧正 不胜感恩!||Day02
  • 一、C#语法基础都有什么?
      • 1. 基本结构
      • 2. 数据类型和变量
      • 3. 操作符
      • 4. 控制结构
      • 5. 方法
      • 6. 面向对象编程
      • 7. 属性
      • 8. 异常处理
      • 9. 委托和事件
      • 10. 泛型
  • 二、C#基本结构、数据类型和变量和基本操作符
    • 1.C#基本结构
      • 1. `using` 指令
      • 2. 命名空间
      • 3. 类
      • 4. `Main` 方法
      • 5. 语句
      • 6. 注释
      • 7. 完整的C#程序示例
    • 2.数据类型和变量
      • 1. 数据的量级
      • 2.数据类型
      • 3.常量与变量
      • 4.命名规则
    • 3.运算和类型转换等
      • 1.运算符
      • 2.输入与输出
      • 3.类型转换
      • 4预编译指令
  • 总结:


前言

昨天我们对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. using 指令

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

using System;

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

2. 命名空间

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

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

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

3. 类

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

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

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

4. Main 方法

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

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

5. 语句

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

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

6. 注释

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

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

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.数据类型和变量

1. 数据的量级

1024字节(byte)= 1KB

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

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: 高精度浮点数,极少使用,一般用于需要极高精度的计算。

3.常量与变量

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

4.命名规则

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

3.运算和类型转换等

1.运算符

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

2.输入与输出

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

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.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
    

4预编译指令

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

总结:

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

标签:Console,C#,Day02,void,速成,int,Main,public
From: https://blog.csdn.net/2301_79175212/article/details/140888528

相关文章

  • c++中的标准库
    前言hello,我是文宇。正文C++标准库是C++编程语言的基本组成部分之一,它为开发人员提供了一套丰富和强大的工具和功能,以便快速开发高效、可靠和可移植的应用程序。C++标准库由两个主要部分组成:STL(StandardTemplateLibrary)和非STL部分。STL(标准模板库)是C++标准库的核心部分,......
  • K11505 The Lost cow[USACO-2017-USOpen-B]
    题目描述FarmerJohn最珍贵的奶牛Bessie丢了,他需要把它找回来。幸运的是,农场里只有一条长长的直路,他知道Bessie肯定在这条路上的某个地方。如果我们把这条路看成数轴,假设FarmerJohn所在位置是x,Bessie所在的位置是y(对于John是未知的),如果FarmerJohn知道Bessie的位置,那么他就......
  • 速通c++(周六)
    前言hello大家好,我是文宇。今天是速通c++的最后一天。(周日是愉快的玩耍,学个毛线)今天是一些用循环写的骚操作(娱乐)正文以下是一些在C++中使用循环进行的有趣和骚操作的例子:打印三角形:intn=5;for(inti=0;i<n;i++){for(intj=0;j<=i;j++){cout......
  • coreseek4.1使用sphinx做索引的索引控制shell脚本及逻辑 及 linux安装coreseek4.1的sp
    一、coreseek4.1使用sphinx做索引的索引控制shell脚本及逻辑    sphinx做索引时索引数据来源可以有多种方式,比如数据库mysql,pgsql,mssql,odbc,也可以是python脚本,也可以是xml数据文件,xmlpipe(publish:November1,2017-Wednesday)。    一般来说,如果索引的数据比较简单,......
  • nodejs使用child_process模块启动(exec和spawn)子线程任务,子进程实例的kill()方法无效的
    以下内容在win10环境下的执行分析(这里就不对进程和线程做区分了):child_process.exec和child_process.spawn启动进程的区别。shell<string>Shelltoexecutethecommandwith.SeeShellrequirementsandDefaultWindowsshell.Default:'/bin/sh'onUnix,process.env.C......
  • JavaScript实现tab栏切换 jquery实现tab栏切换 的方法的对比
    这个例子比较简单,但却很实用,当然实际工作中我们一般不会这样去写,我们通常会把以此为基础去封装一个可重用的控件,但基本思想不变。JavaScript实现tab栏切换在JavaScript中实现Tab切换的基本逻辑是通过监听每个Tab的点击事件,然后隐藏所有的内容区域,并显示对应于点击的Tab的......
  • Python:match()和search()的区别
    在Python中,match()和search()函数通常与正则表达式(regularexpressions)一起使用,特别是在re模块中。尽管它们都用于搜索字符串中的模式,但它们在搜索行为上有关键的区别。re.match()re.match()函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()......
  • Pandas中显示Dataframe里的特定行 head/tail/iloc
    显示最上面x行cities_df.head(x)#cities_df是名称cities_df.iloc[:x]#iloc是基于整数位置的索引(从0开始)选第三就是写2显示倒数x行cities_df.tail(x)详解iloc开始df.iloc[0]:索引0行(实际标签行的下一行,行0)df.iloc[1:3,0:2]:        1:3是指索引1开始到不......
  • LeetCode 1041. Robot Bounded In Circle
    原题链接在这里:https://leetcode.com/problems/robot-bounded-in-circle/description/题目:Onaninfiniteplane,arobotinitiallystandsat (0,0) andfacesnorth.Notethat:The northdirection isthepositivedirectionofthey-axis.The southdirection ......
  • 【MFC】树控件递归遍历
    //本树只有一个父节点,最深子节点为2级,拥有复选框//遍历树控件(只有一个父节点,命名为“所有模板”)voidCCheckOverLapDlg::TraverseTree(CTreeCtrl*pTreeCtrl){ CStringstrParent=_T("所有模板"); //主函数入口 TraverseTreeBranch(pTreeCtrl,pTreeCtrl->GetRootItem(),......